प्रभावी जावा अध्याय 5 से (जेनरिक):प्रकार पैरामीटर बनाम असीम वाइल्डकार्ड
// Two possible declarations for the swap method public static <E> void swap(List<E> list, int i, int j); public static void swap(List<?> list, int i, int j);
इन दोनों घोषणाओं में से कौन सा, बेहतर है और क्यों? एक सार्वजनिक एपीआई में, दूसरा बेहतर है क्योंकि यह आसान है। आप एक सूची में पास होते हैं - कोई भी सूची - और विधि अनुक्रमित तत्वों को स्वैप करती है। चिंता करने के लिए कोई प्रकार पैरामीटर नहीं है। एक नियम के रूप में, यदि एक विधि पैरामीटर विधि घोषणा में केवल एक बार प्रकट होता है, तो उसे वाइल्डकार्ड से प्रतिस्थापित करें।
मुझे समझ में नहीं आता, मेरे एपीआई के क्लाइंट के लिए दूसरा विकल्प क्यों आसान है? मैं समान पैरामीटर को पहले और दूसरे तरीकों से पास कर सकता हूं। इसके अलावा दूसरे को वाइल्डकार्ड कैप्चर के लिए सहायक विधि की आवश्यकता होती है। क्या कोई बता सकता है कि दूसरे की सिफारिश क्यों की जाती है? धन्यवाद!
संभावित उत्तर: http://stackoverflow.com/questions/6231973/difference-between-list-list-listt-liste-and-listobject?rq=1 –