2017-04-12 2 views
1

Ich bin in einer aplication arbeiten, wo es Codezeilen wie folgt aus:

Object localObject4 = arrayOfCallSite[6].callGetProperty($get$$class$groovy$lang$Closure());ScriptBytecodeAdapter.setGroovyObjectProperty(localObject4, $get$$class$groovy$json$JsonDelegate(), clon 

Was bedeutet '$' tut? Hier

ist die Verbindung des Beispiels: http://www.javatiger.com/jar.php/1320000/groovy-all-1.8.0

+0

Java behandelt nicht '$' wie jedes Sonderzeichen. Aber es wird verwendet, um 'OuterClass $ NestedClass' zu trennen, wenn Sie beispielsweise den Klassennamen drucken oder den Klassennamen in 'Class.forName (" full.name.of.SomeClass ")' verwenden möchten. Aber abgesehen davon gibt es keine besondere Bedeutung für Sie, so dass Sie es wie andere Zeichen verwenden können, während Sie Ihre Methoden oder Variablen benennen. Deine Frage sollte wahrscheinlich sein, "was $ in groovy darstellt?". – Pshemo

+1

Das sieht aus wie eine Klasse dekompiliert mit dem JD-Dekompiler ... Kein Mensch würde Code so schreiben und ich denke nicht, dass das kompilierbar ist ... Der Decompiler kämpft mit Groovy bytecode –

+0

Ja, ist eine dekompilierte Klasse, was soll ich tun, um den richtigen Code zu bekommen? Gibt es eine Chance? @tim_yates mache deinen Kommentar wie eine Antwort, damit ich ihn akzeptieren kann (: –

Antwort

0

$ ist ein gültiger Teil einer Kennung in Java. Dies wird zum Beispiel erlaubt:

int $ = 2; 
+2

Frage 'Was bedeutet '$'?', Ich denke, ich habe es beantwortet. Wenn Sie etwas mehr wie 'Warum wird' $ 'in diesen Groovy Bezeichnern verwendet?' dann sollten Sie wirklich lernen um anständige Fragen zu stellen. – john16384