2010-06-18 4 views
23

Comment imprimer les variables (publiques et internes) et leurs valeurs d'un objet Groovy?Impression de variables et de valeurs dans un objet Groovy

i.e.

class X 
{ 
    def X = 10 
    def Y = 5 

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

devrait donner

X, 10 
Y, 5 
Z, 3 

Ce doit être une solution dynamique, i.e. lors de l'exécution.

+0

Est-ce vous parlez de la réflexion? –

Répondre

30

Vous voulez dire comme ça?

def a = "Hi" 

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

donne:

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

[modifier]

votre question éditée, cela vous donne:

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

Je ne pense pas qu'il est possible d'obtenir la Valeur Z au moment de l'exécution ... La seule façon dont je peux penser à le faire est via l'AST ...

49

dump()

Par exemple

"ddd".dump() 

Prints:

valeur [email protected] = dddd offset = 0 count = 4 hash = 3078400

+17

dump() n'imprime pas, renvoie une chaîne. Vous devrez imprimer les résultats. c'est-à-dire println "ddd" .dump() – ebelisle

Questions connexes