2010-06-18 5 views
23

Wie kann ich die (öffentlichen und internen) Variablen und ihre Werte eines Groovy-Objekts ausdrucken?Ausdruck von Variablen und Werten in einem Groovy-Objekt

D.h.

class X 
{ 
    def X = 10 
    def Y = 5 

    private void doPrivate() 
    { 
     def Z = 3 
    } 
} 

Sollte

X, 10 
Y, 5 
Z, 3 

geben Dies hat eine dynamische Lösung sein, das heißt zur Laufzeit.

+0

Sind redest du über Reflexion? –

Antwort

30

Sie meinen so?

def a = "Hi" 

a.properties.each { println "$it.key -> $it.value" } 

Gibt:

class -> class java.lang.String 
bytes -> [72, 105] 
empty -> false 

[Bearbeiten]

Mit Ihrer editierten Frage, dies würde Sie:

class -> class X 
y -> 5 
metaClass -> [email protected][[email protected][class X]] 
x -> 10 

Ich glaube nicht, es ist möglich, das bekommen Z-Wert zur Laufzeit ... Die einzige Möglichkeit, dies zu tun, ist über die AST ...

49

dump()

Zum Beispiel

"ddd".dump() 

Drucke:

[email protected] Wert = DDDD offset = 0 count = 4 hash = 3078400

+17

dump() druckt nicht, es gibt eine Zeichenfolge zurück. Sie müssen die Ergebnisse ausdrucken. d. h. println "ddd" .dump() – ebelisle

Verwandte Themen