2013-01-15 21 views
6

मैं सिर्फ 2.2.0 जो ग्रूवी 2.0 उपयोग कर रहा है करने के लिए अपने Grails एप्लिकेशन में से एक के लिए उन्नत से बचने के लिए मना किया है और मैं अब इस संकलन हो रही है त्रुटि:एक ही नाम के निजी और सार्वजनिक/संरक्षित तरीकों मिश्रण मुल्टीमेथड्स अक्षम का कारण बनता है के लिए किया जा और आश्चर्य की बात व्यवहार

Mixing private and public/protected methods of the same name causes multimethods to be disabled and is forbidden to avoid surprising behaviour. Renaming the private methods will solve the problem.

निम्न कोड के आधार पर:

def getRootDomain(key) { } 

private getRootDomain() { } 

यह एक आसान ठीक है, लेकिन मैं वास्तव में क्यों बेहतर समझने के लिए चाहते हैं। क्या कोई मुझे ये समझा सकता है?

उत्तर

6

यह क्योंकि जिस तरह से ग्रूवी चुनता है जो विधि कॉल करने, और जावा के साथ अपनी क्षमता असंगति की है।

आप मेलिंग सूची पर इस सूत्र को देखा है?

http://groovy.329449.n5.nabble.com/mixing-public-private-overloaded-methods-causes-compilation-error-td367147.html

+0

मैंने इसे नहीं देखा था। धन्यवाद। – Gregg