2010-06-18 8 views
23

मैं (सार्वजनिक और आंतरिक) चर और ग्रोवी ऑब्जेक्ट के उनके मूल्यों को कैसे मुद्रित कर सकता हूं?ग्रोवी ऑब्जेक्ट में चर और मानों को प्रिंट करना

यानी

class X 
{ 
    def X = 10 
    def Y = 5 

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

X, 10 
Y, 5 
Z, 3 

देना चाहिए यह एक गतिशील समाधान, यानी कार्यावधि में हो गया है।

+0

हैं आप प्रतिबिंब के बारे में बात कर रहे हैं? –

उत्तर

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 

मैं इसे प्राप्त करना संभव है नहीं लगता है जेड वैल्यू रनटाइम पर ... एकमात्र तरीका मैं ऐसा करने के बारे में सोच सकता हूं एएसटी के माध्यम से है ...

49

dump()

उदाहरण के लिए

"ddd".dump() 

प्रिंटों:

[email protected] मूल्य = ऑफसेट dddd = 0 गिनती = 4 हैश = 3078400

+17

डंप() प्रिंट नहीं करता है, यह एक स्ट्रिंग देता है। आपको परिणामों को प्रिंट करने की आवश्यकता होगी। यानी println "ddd" .dump() – ebelisle

संबंधित मुद्दे