java - Is there a need to use bounded wildcard generics in a passthrough method? -
मुझे पता है कि संग्रह & lt; E & gt; :
सार्वजनिक शून्य जोड़ें सभी (संग्रह & lt ;? ई & gt; उपसंरक्षण फैलता है); हम संग्रह & lt ;? का उपयोग करते हैं सुपर ई और gt; वहां संग्रह को अनुमति देने के लिए जहां उप-तत्वों का केवल अस्तित्व है, उदाहरण:
सूची & lt; drivable & gt; ड्रावबल्स = नए अर्रेलिस्ट & lt; & gt; (); सूची के & lt; कार & gt; कारें = नए अर्रेलिस्ट & lt; & gt; (); // हमें यहां वाइल्डकार्ड की आवश्यकता है, क्योंकि निम्न पंक्ति: drivables.addAll (कार); हालांकि, क्या मेरी बाध्यता वाली वाइल्डकार्ड मेरी निम्नलिखित विधि में आवश्यक हैं?
सार्वजनिक स्थिर & lt; E & gt; संग्रह के & lt; ई & gt; needNonEmpty (अंतिम संग्रह & lt; E & gt; संग्रह) NoSuchElementException फेंकता है {if (collection.isEmpty ()) {नया NoSuchElementException ("संग्रह खाली होना चाहिए"); } वापसी संग्रह; } यह Objects.requireNonNull (T ऑब्जेक्ट) जैसा एक समान idiom का उपयोग करता है, जो वास्तव में T ऑब्जेक्ट देता है ।
तो, क्या कोई भी लाभ (या यह भी गलत है?) मेरे तरीके को निम्नलिखित के रूप में लिखना है?
सार्वजनिक स्थिर & lt; E & gt; संग्रह के लिए & lt ;? सुपर ई & gt; needNonEmpty (अंतिम संग्रह & lt ;? ई और संग्रह; फैली हुई है);
संग्रह का उपयोग & lt ;? ई & gt; फैली
पारगमन पारित पैरामीटर को सार्वभौमिक दाता बनाता है - अर्थात् इसे स्वतंत्रता से पढ़ा जा सकता है।
आपको पास संग्रह से ऑब्जेक्ट पढ़ने की आवश्यकता नहीं है किसी वाइल्डकार्ड की आवश्यकता नहीं है।
संयोग से संग्रह का उपयोग कर & lt ;? सुपर ई & gt;
एक स्पष्ट परिचय के लिए देखें।
इसके अलावा एक अच्छा जवाब इस कवर।
/ div>
Comments
Post a Comment