reflection groovy

reflection - Imprimir variables y valores en un objeto Groovy



groovy java (2)

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

Es decir

class X { def X = 10 def Y = 5 private void doPrivate() { def Z = 3 } }

Debería dar

X, 10 Y, 5 Z, 3

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


¿Quieres decir así?

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ía:

class -> class X y -> 5 metaClass -> org.codehaus.groovy.runtime.HandleMetaClass@16de4e1[groovy.lang.MetaClassImpl@16de4e1[class X]] x -> 10

No creo que sea posible obtener el valor de Z en tiempo de ejecución ... La única forma en que se me ocurre hacerlo es a través de AST ...


dump()

Por ejemplo

"ddd".dump()

Huellas dactilares:

java.lang.String@2ef900 value = dddd offset = 0 count = 4 hash = 3078400