2016-04-16 9 views
1

Ich arbeite an einem alten jEdit-Plugin, das früher mit jEdit 4.0 gearbeitet hat. Ich versuche es für jEdit 5.3 zu aktualisieren. Einer der Hauptgründe, warum ich das Plugin (.jar) aktualisieren muss, ist BufferChangeListener und BufferChangeAdapter sind jetzt veraltet. Ich muss stattdessen den neuen BufferListener verwenden.Was werden die .1 .2 .3 .4 wie Methoden oder Eigenschaften in einer Java-Klasse verwendet?

Beim Kompilieren stoße ich auf etwas, das scheinbar nichts miteinander zu tun hat. Es mag nicht ".1" oder ".2" oder ".3" oder ".4" (z. B. AssetBrowserDockableWindow.1)

AssetBrowserDockableWindow ist eine Klasse, die keine Methoden oder Klassen wie ".1" hat oder ".2" oder ".3" oder ".4". Und soweit ich das beurteilen kann, erbt er solche Methoden oder Eigenschaften nicht.

public class AssetBrowserDockableWindow 
    extends JPanel 
    implements EBComponent 

jedoch in dem vorherigen Code sehe ich Schnipsel wie folgt aus:

private class BufferChangeHandler extends BufferListener { 

    BufferChangeHandler(AssetBrowserDockableWindow.1 x1) { this(); } 

.

SwingUtilities.invokeAndWait(new AssetBrowserDockableWindow.1(this)); 

.

SwingUtilities.invokeLater(new AssetBrowserDockableWindow.2(this)); 

.

this.editPane.getTextArea().addFocusListener(new AssetBrowserDockableWindow.3(this)); 

Ich bekomme "error: <identifier> expected" bei diesen Nummern. Ich hatte gehofft, dass jemand erklären könnte, wofür diese Zahlen gewesen sein könnten. Es tut mir leid, wenn es etwas Grundlegendes ist und ich nicht nach dem richtigen Begriff suche. Wenn jemand irgendeine Art von Einsicht bieten kann, die mich in die richtige Richtung weisen würde, würde ich es begrüßen.

+2

Sieht so aus, als ob "vorheriger Code" aus einer .class-Datei dekompiliert wurde. Dies sind die Bezeichner, die der Compiler anonymen inneren Klassen zugewiesen hat, obwohl normalerweise das Trennzeichen ein Dollarzeichen ist, wie in 'AssetBrowserDockableWindow $ 2'. Keine Ahnung, warum ein Punkt ersetzt wurde. –

+0

Danke @Jim. Dein Kommentar bringt mich in die richtige Richtung. Du hast recht, dass ich mit dekompiliertem Code arbeite. Ich habe das [JD GUI] (http://jd.benow.ca/) Tool zum Dekompilieren verwendet. Nach einigen Nachforschungen zu den "korrekten" Begriffen beschäftige ich mich definitiv mit anonymen Klassen. Ich kann sogar die AssetBrowserDockableWindow $ 1.class-Dateien (und $ 2 ~ $ 4) in der ursprünglichen JAR-Datei sehen. –

Antwort

0

Dieser "vorherige Code" wurde aus .class-Dateien dekompiliert. Dies sind die vom Compiler anonymen inneren Klassen zugewiesenen Bezeichner, obwohl das Trennzeichen normalerweise ein Dollarzeichen ist, wie in AssetBrowserDockableWindow $ 2.

Verwandte Themen