Class<? extends Integer>
के साथ वाइल्डकार्ड ठीक संकलित करेगा, लेकिन Integer
एक अंतिम प्रकार है, इसलिए इसे ऊपरी सीमा के रूप में उपयोग करने के लिए यह समझ में नहीं आता है (कुछ भी extend
यह कभी भी नहीं होगा)।अंतिम ऊपरी बाउंड
आप एक प्रकार पैरामीटर के लिए एक ऊपरी बाध्य रूप में एक अंतिम प्रकार का उपयोग करने का प्रयास करें, तो आप एक संकलक चेतावनी मिल जाएगा:
प्रकार पैरामीटर टी अंतिम प्रकार पूर्णांक से घिरा नहीं किया जाना चाहिए। अंतिम प्रकार आगे
नहीं बढ़ाई जा सकती क्यों एक ऊपरी बाध्य रूप में एक अंतिम प्रकार का उपयोग होता है के लिए वाइल्डकार्ड के बिल्कुल ठीक हो, लेकिन एक प्रकार पैरामीटर के लिए एक चेतावनी फेंक? जावा भी अंतिम ऊपरी प्रकार से वाइल्डकार्ड को बाध्य करने की इजाजत क्यों देता है?
ऐसा लगता है कि संकलक स्वयं के लिए यह समझ सकता है कि 'कक्षा इंटीजर बढ़ाता है> 'आपके दूसरे उदाहरण से लौटाया गया है 'कक्षा' के साथ संगत है क्योंकि 'इंटीजर' अंतिम है। लेकिन मुझे लगता है कि इसके लायक से कंपाइलर को और जटिलता जोड़नी होगी। शायद चेतावनी ग्रहण विशिष्ट है: ग्रहण जूनो डब्ल्यू/जेडीटी 3.8.0। –
Jeffrey