ich die Methode getFields()
auf einem einfachen Dummy-Klasse zu verwenden versuchte, wie folgt:
class C{
public int a
int b
String s
float f
static int x
}
Ich schrieb
def c = new C()
println c.class.getFields()
Dies ist, was ich als Ausgabe bekommen:
[public int C.a, public static transient boolean C.__$stMC]
Kann jemand erklären, warum nur a
erscheint in der Liste? Und was ist die andere Entität C.__$stMC
? Ich suchte online, scheint stMC staticMetaClass. Bitte klären Sie. Dank
Aber In Groovy sind alle Felder standardmäßig public. Also sollte "getFields()" auch diese beinhalten, oder? Auch irgendeine Idee über $ stMC? Für was steht das? –
Alle Felder haben öffentliche Zugriffsmodifikatoren. Wenn Sie den Wert mit obj.prop = "x" ändern, ruft er unter der Haube tatsächlich eine Methode auf. Unter dem kompilierten Java-Feld ist nicht öffentlich. –