2010-01-15 11 views
5

मैं एक डोमेन क्लास को कार्यान्वित करने की कोशिश कर रहा हूं जो किसी भी संपत्ति के मूल्य को बदलते समय रिकॉर्ड करता है, लेकिन वास्तविक मूल्य निर्धारित करते समय मेरे setProperty() कॉल को असीमित रिकर्सन में परिणाम मिलता है।ग्रोवी: setProperty() के भीतर एक संपत्ति कैसे सेट करें और अनंत रिकर्सन से बचें?

यह है कि यह कैसे अभी दिखाई देता है:

void setProperty(String name, value) 
{ 
    if(name == "modified") 
    { 
     this.modified = value 
     return 
    } 
    else 
    { 
     if(this[name]==value) 
     { 
      return 
     } 
     this.modified = true 
     this[name]=value 
    } 
} 

तो कैसे मैं एक पुनरावर्ती setProperty() कॉल ट्रिगर किए बिना एक संपत्ति यह नाम इसलिए दिया उपयोग कर सकते हैं? या क्या मेरा लक्ष्य हासिल करने का कोई अलग तरीका है?

उत्तर

8

प्रयास करें:

[email protected]"$name" = value 

(http://groovy.codehaus.org/Operators#Operators-Javafield%[email protected]%29 देखें)

+0

इस @ नाम एक विशिष्ट संपत्ति का उपयोग होगा, लेकिन मैं संपत्ति के नाम के आधार जेनेरिक पहुँच की आवश्यकता है।। मैंने अपना जवाब बदल दिया है जो अब मुझे काम करने के लिए मिला है। आश्चर्यजनक रूप से, मैं पहले ही पाया और कोशिश की। @ ऑपरेटर। मुझे संदेह है कि नेटबीन्स अभी भी पिछले कोड चला रहा था (यह वास्तव में उस तरह से बेकार है)। –

+0

उत्कृष्ट। खुशी है कि यह आपके लिए कारगर रहा। –

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