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