Was ist das $ -Zeichen in Java? Bitte werfen Sie einen Blick in den Java-Code unten

7

Ich habe überall gesucht, um herauszufinden, was das val $ editorkit oder das $ -Zeichen darunter bedeutet, aber kein Glück ... bitte helfen ...

%Vor%     
scamexdotexe 04.02.2012, 16:30
quelle

4 Antworten

3

Das $ -Zeichen wird vom Java-Compiler für generierte Namen von inneren Klassen, synthetischen Feldern und Methoden verwendet. Es ist gültig für Bezeichner in der Java-Quelle, wird jedoch davon abgeraten.

Der Code, den Sie anzeigen, sieht wie dekompilierter Code einer anonymen inneren Klasse aus. Die anonyme Runnable -Implementierung in der Methode updateHtmlEditor greift auf die Parameter ihrer umgebenden Methode zu. Um diesen Zugriff zu ermöglichen, müssen die Parameter final deklariert werden. In Java-Bytecode hat die anonyme Klasse drei letzte Instanzattribute: thisLinkParser.this enthält die äußere Instanz val$editorkit , val$reader und LinkParser.this.htmlViewEditor enthält die äußeren Methodenparameter und einen Konstruktor mit drei Argumenten, denen die Argumente zugewiesen werden die Attribute.

Beachten Sie auch, dass LinkParser eine Referenz auf ein Attribut der äußeren Klasse LinkParser.this ist. In diesem Beispiel kann der explizite Verweis auf die äußere Instanz %code% weggelassen werden.

Der ursprüngliche Quellcode sieht ungefähr so ​​aus:

%Vor%     
Christian Semrau 04.02.2012, 21:45
quelle
15

Es bedeutet nichts besonderes - es ist nur ein Buchstabe, der Teil des Namens ist, genau wie der l davor oder der e danach.

Im JLS-Abschnitt zu Identifikatoren finden Sie ausführliche Informationen dazu ist und ist nicht erlaubt in einem Namen.

    
Andrzej Doyle 04.02.2012 16:32
quelle
4

Das können wir nicht wirklich sagen, da Sie die Variablendeklaration nicht angegeben haben, aber in Java kann $ ein Teil eines Variablennamens sein, zum Beispiel können Sie so etwas tun:

%Vor%

So wird Hello gedruckt.

    
npinti 04.02.2012 16:35
quelle
1

Es ist erlaubt, dass der Dollar Variablennamen einträgt, aber per Konvention wird er nicht verwendet. Schau mal hier Ссылка

    
redben 04.02.2012 16:34
quelle

Tags und Links