में है कि विधि का उपयोग कर रहा "खराब" प्लस विधि ग्रूवी में निम्नलिखित तरीके से चाहते हैं ग्रूवी में methed का व्यवहार बदलने के लिए कैसे:metaclass
Integer.metaClass.plus {Integer n -> delegate + n + 1}
assert 2+2 == 5
मैं StackOverflowException हो रही है (जो आश्चर्य की बात नहीं है) ।
मेटाक्लास 'बंद करने के अंदर "मूल" प्लस विधि का उपयोग करने का कोई तरीका है?
ऐसा लगता है कि ग्रूवी 1.6 पर्याप्त चतुर कॉल प्रतिनिधि बदलने के लिए है - मैं ग्रूवी में भाग गया है कि + n को सौंपने के लिए (-n) और StackOverflowException अभी भी फेंक दिया जाता है –
हम्म .. मेरे संस्करण ग्रूवी 1.6 है और जावा 1.5.0_15 कंसोल और यह किसी भी StackOverflowException फेंकने के बिना ठीक चला गया मैं groovyshell में भाग गया और यह ठीक चला गया। आप ऊपर लिपि चलाने की कोशिश कैसे कर रहे हैं? –
बस टेड द्वारा ऊपर पोस्ट उत्तर देखा। मुझे लगता है कि यह बहुत बेहतर और सामान्य समाधान है। टेड करने के लिए +1। –