स्पष्ट प्रकार गवाहों के बिना कोई व्यावहारिक अंतर नहीं है।
ईरान द्वारा किए गए प्रकार के गवाह को निर्दिष्ट किए बिना, दो तरीकों के बीच लचीलापन में कोई अंतर नहीं है।
अनिवार्य रूप से, T
से अधिक ? super T
का उपयोग करते हैं, केवल एक शैलीगत अंतर नहीं है, लेकिन यह बेहतर अभ्यास है, के रूप में अच्छा कोड के सिद्धांतों के एक नंबर लगाने से देखा जा सकता है: और अधिक स्पष्ट रूप ? super T
:
- स्पष्ट मंशा दिखाता है कि किस प्रकार
dest
लेना चाहिए।
- Modularity: आपको पर टाइप बाधाओं को देखने की आवश्यकता नहीं है, यह जानने के लिए कि किस प्रकार
dest
ले सकते हैं।
- Producer Extends, Consumer Super (PECS): एक उत्पादक पैरामीटर (नीचे "नीचे")
extends
का उपयोग करना चाहिए जबकि उपभोक्ता पैरामीटर (नीचे "बाहर") super
कीवर्ड का उपयोग करना चाहिए। दो कार्यों में से एक के रूप में उपलब्ध कराने के
इस चर्चा के लिए, यह चर के बारे में सोचना उपयोगी है::
? super T
का उपयोग करना भी Java tutorials द्वारा सिफारिश की है (वे भी एक copy
समारोह का उपयोग करें)
एक "इन" वैरिएबल
एक "इन" चर कोड को डेटा प्रदान करता है। दो तर्कों के साथ copy
विधि की कल्पना करें: copy(src, dest)
। src
तर्क डेटा कॉपी करने के लिए प्रदान करता है, इसलिए यह "इन" पैरामीटर है।
एक "आउट" चर
एक "बाहर" चर अन्यत्र उपयोग के लिए डेटा रखती है। copy
उदाहरण में, copy(src, dest)
, dest
तर्क डेटा स्वीकार करता है, इसलिए यह "आउट" पैरामीटर है।
वाइल्डकार्ड का उपयोग करना है या किस प्रकार का वाइल्डकार्ड उचित है या नहीं, यह तय करते समय आप "इन" और "आउट" सिद्धांत का उपयोग कर सकते हैं। निम्न सूची का पालन करने के दिशा निर्देश प्रदान:
वाइल्डकार्ड दिशानिर्देश:
- एक "में" चर
extends
कीवर्ड का उपयोग, एक ऊपरी घिरे वाइल्डकार्ड के साथ परिभाषित किया गया है।
super
कीवर्ड का उपयोग करते हुए, "आउट" चर को निचले बाउंड वाइल्डकार्ड के साथ परिभाषित किया गया है।
आप अपने जेनेरिक खाने वाले HTML से बचने के लिए बैकटिक्स के साथ इनलाइन कोड को घेर सकते हैं। –