2010-06-18 12 views
23

如何打印出(公共和內部)變量及其Groovy對象的值?在Groovy對象中打印變量和值

class X 
{ 
    def X = 10 
    def Y = 5 

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

應該給

X, 10 
Y, 5 
Z, 3 

這必須是一個動態的解決方案,即在運行時。

+0

是你在談論反思? – 2010-06-18 12:51:43

回答

30

您的意思是?

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 -> [email protected][[email protected][class X]] 
x -> 10 

我不認爲這是有可能得到Z值在運行時...我能想到的唯一方法就是通過AST ...

49

dump()

例如

"ddd".dump() 

打印:

[email protected]值= DDDD偏移= 0計數= 4散列= 3078400

+17

dump()不打印,它返回一個字符串。您將需要打印結果。即println「ddd」.dump() – ebelisle 2014-06-20 18:44:34