Вы имеете в виду, как это?
def a = "Hi"
a.properties.each { println "$it.key -> $it.value" }
Дает:
class -> class java.lang.String
bytes -> [72, 105]
empty -> false
[править]
С вашим отредактированным вопросом это даст вам:
class -> class X
y -> 5
metaClass -> org.codehaus.groovy.runtime.HandleMetaClass@16de4e1[groovy.lang.MetaClassImpl@16de4e1[class X]]
x -> 10
Я не думаю, что можно получить значение Z во время выполнения ... Единственный способ, которым я могу придумать, это сделать через AST ...