2010-06-18 64 views
23

¿Cómo puedo imprimir las variables (públicas e internas) y sus valores de un objeto Groovy?Imprimir variables y valores en un objeto Groovy

es decir

class X 
{ 
    def X = 10 
    def Y = 5 

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

debe dar

X, 10 
Y, 5 
Z, 3 

Esto tiene que ser una solución dinámica, es decir en tiempo de ejecución.

+0

Son ¿Estás hablando de la reflexión? –

Respuesta

30

¿Te refieres a esto?

def a = "Hi" 

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

Da:

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

[editar]

Con su pregunta editada, esto le dará:

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

no creo que es posible obtener la Valor Z en tiempo de ejecución ... La única forma en que se me ocurre hacerlo es a través de AST ...

49

dump()

Por ejemplo

"ddd".dump() 

Lienzo:

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

+17

dump() no se imprime, devuelve una cadena. Deberá imprimir los resultados. es decir, println "ddd" .dump() – ebelisle

Cuestiones relacionadas