2010-04-06 15 views
8

शीर्षक यह सब पूछता है: ग्रोवी कक्षा के सभी संपत्ति नाम कैसे प्राप्त करें?ग्रोवी क्लास के सभी संपत्ति नाम कैसे प्राप्त करें?

क्या यह भी संभव है? मैंने सोचा कि मैं कक्षाओं के साथ संग्रह वाक्यविन्यास का भी उपयोग कर सकता हूं, ऐसा लगता है कि यह काम नहीं कर रहा है।

+0

यह वास्तव में http://stackoverflow.com/questions/1477706/groovy-property-iteration का डुप्लिकेट नहीं है क्योंकि इस सवाल संपत्ति के लिए केवल पूछ रहा है नाम, असाइनमेंट के उद्देश्य के लिए नाम और मूल्य नहीं। – pczeus

+0

@pczeus यदि आप जानते हैं कि नाम और मूल्य कैसे प्राप्त करें, तो आप यह भी जानते हैं कि केवल नाम कैसे प्राप्त करें। –

+0

@MarkRotteveel यह गलत है। GetProperties() को कॉल करके आप दोनों नाम और मूल्य प्राप्त कर रहे हैं। यह केवल नाम पाने का विकल्प नहीं देता है। हां आप परिणाम() परिणाम कर सकते हैं, लेकिन आपने पहले से ही सभी गेटर्स() को कॉल करने और मूल्यों को पुनर्प्राप्त करने के लिए ग्रोवी की कीमत चुकाई है। मेरा मुद्दा यह है कि ग्रोवी में मूल्य प्राप्त करने के दंड का भुगतान किए बिना केवल संपत्ति के नाम प्राप्त करने का एक और विकल्प है। कई मामलों से कोई फर्क नहीं पड़ता, लेकिन भले ही यह वास्तविक डुप्लिकेट प्रश्न न हो क्योंकि यह केवल नाम मांग रहा है। – pczeus

उत्तर

10

मैं ग्रोवी कंपाइलर 2.4 का उपयोग कर रहा हूं। मुझे java.util.LinkedHashMap मिलता है जिसमें सभी गुण और उनके मूल्य getProperties() को ग्रोवी ऑब्जेक्ट पर कॉल करके लौटाए जाते हैं।

class PropertyDemoClass { 
    int firstProperty = 1; 
    String secondProperty = "rhubarb" 
    String thirdProperty = "custard" 
} 

PropertyDemoClass demoClass = new PropertyDemoClass() 
println demoClass.getProperties().toString() 

जिसमें परिणाम:

[firstProperty:1, secondProperty:rhubarb, class:class PropertyDemoClass, thirdProperty:custard] 
+0

कोड का एक छोटा सा उदाहरण स्निपेट एक शानदार जोड़ होगा ... –

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