2010-06-18 28 views
23

Làm cách nào để in các biến (công khai và nội bộ) và các giá trị của một đối tượng Groovy?In ra các biến và giá trị trong đối tượng Groovy

tức là

class X 
{ 
    def X = 10 
    def Y = 5 

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

nên cung cấp cho

X, 10 
Y, 5 
Z, 3 

Đây có phải là một giải pháp năng động, tức là khi chạy.

+0

Are bạn nói về sự phản chiếu? –

Trả lời

30

Ý bạn là như thế này?

def a = "Hi" 

a.properties.each { println "$it.key -> $it.value" } 

Cung cấp:

class -> class java.lang.String 
bytes -> [72, 105] 
empty -> false 

[sửa]

Với câu hỏi đã chỉnh sửa của bạn, điều này sẽ cung cấp cho bạn:

class -> class X 
y -> 5 
metaClass -> [email protected][[email protected][class X]] 
x -> 10 

Tôi không nghĩ rằng nó có thể để có được Giá trị Z ở thời gian chạy ... Cách duy nhất tôi có thể nghĩ là thực hiện thông qua AST ...

49

dump()

Ví dụ

"ddd".dump() 

Prints:

giá trị [email protected] = dddd offset = 0 count = 4 hash = 3078400

+17

dump() không in, nó trả về một chuỗi. Bạn sẽ cần in kết quả. tức là println "ddd" .dump() – ebelisle

Các vấn đề liên quan