2009-05-22 12 views
5

मैं विधि चेन setters (setters कि वस्तु स्थापित किया जा रहा वापसी) जेनरेट करना चाहते हैं उत्पन्न ग्रहण दे सकते हैं जिससे की तरह:, विधि चेन setters

public MyObject setField (Object value) { 
    this.field = value; 
    return this; 
} 

इससे एक लाइनर instantiations को आसान बनाती है , जो मुझे पढ़ने में आसान लगता है:

myMethod (new MyObject().setField (someValue).setOtherField (someOtherValue)); 

ग्रहण के टेम्पलेट्स को ऐसा करने के लिए संशोधित किया जा सकता है? मैंने सामग्री को return this; शामिल करने के लिए बदल दिया है लेकिन हस्ताक्षर नहीं बदला गया है।

+0

मैं व्यक्तिगत रूप से इस सवाल का जवाब पता नहीं है। हालांकि, आपको "धाराप्रवाह" इंटरफेस खोजने के द्वारा कुछ परिणाम मिल सकते हैं। http://en.wikipedia.org/wiki/Fluent_interface –

+0

अनुरोध किए गए अनुसार संभावित प्लगइन जोड़ा गया है (अभी तक परीक्षण नहीं किया गया है) – VonC

उत्तर

3

मैं ग्रहण (3.5 आरसी 1 तक) की पुष्टि करता हूं "सेट चेनिंग" सेटटर पीढ़ी का समर्थन नहीं करता है।
यह केवल टिप्पणी और शरीर अनुकूलन की अनुमति देता है, एक सेटर के एपीआई संशोधन नहीं (जिसका अर्थ है कि जेनरेटेड सेटर अभी भी 'void' वापस लौटाता है)।
alt text http://help.eclipse.org/help33/topic/org.eclipse.jdt.doc.user/gettingStarted/images/generate_getter_setter_dialog.png:

प्लगइन Builder Pattern यहाँ मदद कर सकते हैं ... (हालांकि नहीं परीक्षण किया)

क्लासिक रास्ता (नहीं "गड़बड़" क्योंकि यह हमेशा एक "void" सेटर के लिए वापसी प्रकार के रूप में उत्पन्न होगा) हो सकता है

बनाम। नया तरीका (Builder Pattern, संभवतः एक Eclipse plugin के रूप में इस्तेमाल)
alt text http://www.javadesign.info/media/blogs/JDesign/DesignConcepts/DesignPatterns/GOF/Creational-BuilderPatternStructure.jpeg

+0

मुझे पूरा यकीन था कि यह मुख्य कार्यक्षमता नहीं होगी। एक प्लगइन के बारे में कोई विचार है कि यह करता है? –

2

ग्रहण स्वयं का उपयोग न करें, लेकिन यदि आपको कोई सुविधा नहीं मिल रही है तो आपको मानक टेम्पलेट्स में से एक को बदलना होगा।

यह विधि जिस तरह से (जो खोज या दो एक गूगल के साथ मदद कर सकता है) द्वारा चेनिंग कहा जाता है।

+0

धन्यवाद, मैंने स्पष्ट रूप से यह बताने के लिए प्रश्न में संशोधन किया है। –

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