2010-06-18 921 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