2014-05-13 13 views
5

मेरे पास एक तरीका है जो पहले दो पैरामीटर कार और टायर के साथ बंद होना चाहिए और उसे एक प्रकार का वाहन वापस करना चाहिए।ग्रोवी क्लोजर जेनेरिक रिटर्न/पैरामीटर?

ग्रोवी क्लोजर में पैरामीटर के प्रकार की घोषणा करने का कोई तरीका है?

मैं

method(Closure<Vehicle, Car, Tyre> closure); 

सोच रहा हूँ लेकिन क्या सही तरीका क्या है?

उत्तर

0

क्लोजर पर सामान्य पैरामीटर रिटर्न प्रकार के लिए उपयोग किया जाता है। Closure<String> एक स्ट्रिंग वापस कर देगा।

मापदंडों @ClosureParams एनोटेशन

http://beta.groovy-lang.org/docs/groovy-2.3.0-beta-1/html/gapi/groovy/transform/stc/ClosureParams.html

+0

हाँ, दुर्भाग्य से मैं Grails 2.3.7 पर और नीचे Groovy 2.3.0 :(... भी अत्यधिक जटिल है! लेकिन रिटर्न प्रकार का स्वागत है! – Samson

5

आप केवल एक बंद की वापसी प्रकार परिभाषित कर सकते, यानी का उपयोग कर की घोषणा की जा सकती है: Closure<Vehicle>

ग्रूवी 2.3 के रूप में, आप करने के लिए उपयोग कर सकते हैं @ClosureParam टाइप सिस्टम को ट्विक करें (देखें "टाइप सिस्टम टाइप करें"here), लेकिन ग्रोवी 2.3 वर्तमान में ग्रेल्स में नहीं है, मुझे विश्वास है ...