Как я могу распечатать (общедоступный и внутренний) переменные и их значения объекта Groovy?
Т.е.
class X
{
def X = 10
def Y = 5
private void doPrivate()
{
def Z = 3
}
}
Должен дать
X, 10
Y, 5
Z, 3
Это должно быть динамическим решением, т.е. во времени выполнения.
dump ()
Например
"ddd".dump()
Выводит:
java.lang.String@2ef900 value = dddd offset = 0 count = 4 hash = 3078400
Вы имеете в виду вот так?
def a = "Hi"
a.properties.each { println "$it.key -> $it.value" }
Дает:
class -> class java.lang.String
bytes -> [72, 105]
empty -> false
[edit]
С вашим отредактированным вопросом это даст вам:
class -> class X
y -> 5
metaClass -> org.codehaus.groovy.runtime.HandleMetaClass@16de4e1[groovy.lang.MetaClassImpl@16de4e1[class X]]
x -> 10
Я не думаю, что возможно получить значение Z во время выполнения ... Единственный способ, который я могу придумать, - это сделать это через AST ...