का जिक्र: Wildcard Capture Helper Methodsजंगली कार्ड कैप्चर सहायक विधि का उपयोग क्यों करें?
यह जंगली कार्ड को पकड़ने के लिए एक सहायक विधि बनाने के लिए कहता है।
public void foo(List<?> i) {
fooHelper(i);
}
private <T> void fooHelper(List<T> l) {
l.set(0, l.get(0));
}
बस अकेले नीचे इस फ़ंक्शन का उपयोग करने से कोई संकलन त्रुटियां उत्पन्न नहीं होती हैं, और ऐसा ही काम करता है। जो मुझे समझ में नहीं आता है वह है: आप इसका उपयोग क्यों नहीं करेंगे और एक सहायक का उपयोग करने से बचें?
public <T> void foo(List<T> l) {
l.set(0, l.get(0));
}
मैंने सोचा कि यह प्रश्न वास्तव में उबाल जाएगा: वाइल्डकार्ड और जेनेरिक के बीच क्या अंतर है? तो, मैं इस पर गया: difference between wildcard and generics।
1) If you want to enforce some relationship on the different types of method arguments, you can't do that with wildcards, you have to use type parameters.
वास्तव में क्या सहायक समारोह के साथ वाइल्डकार्ड वास्तव में क्या कर रहा है नहीं लेकिन, वह है: यह प्रकार पैरामीटर का उपयोग करने का कहना है? क्या यह अपनी सेटिंग और अज्ञात मूल्यों के साथ विभिन्न प्रकार के विधि तर्कों पर रिश्ते को लागू नहीं कर रहा है?
मेरा प्रश्न है: यदि आपको कुछ ऐसी परिभाषित करना है जिसके लिए विभिन्न प्रकार के विधि तर्कों पर रिश्ते की आवश्यकता है, तो पहले जगह में वाइल्डकार्ड का उपयोग क्यों करें और उसके बाद एक सहायक कार्य का उपयोग करें?
यह वाइल्डकार्ड को शामिल करने के लिए एक हैकी तरीका जैसा प्रतीत होता है।
नहीं, यह पहले से ही –