मैंने संग्रह के लिए विशिष्टता देखी है।कुछ सामान्य क्लास <? super T> जावा जेनेरिक प्रकारों में SomeClass <T> के बराबर क्यों नहीं है?
public static <T> void sort(List<T> list, Comparator<? super T> c)
"? super
" क्यों आवश्यक है? यदि ClassB
ClassA
को बढ़ाता है, तो क्या हमारे पास गारंटी नहीं होगी कि Comparator<ClassA>
"? super
" भाग के बिना, दो ClassB
ऑब्जेक्ट्स की तुलना करने में सक्षम होगा?
दूसरे शब्दों में, यह कोड दिया गया है:
List<ClassB> list = . . . ;
Comparator<ClassA> comp = . . . ;
Collections.sort(list, comp);
संकलक इतने स्मार्ट क्यों नहीं जानते हैं कि यह संग्रह .sort() की घोषणा के लिए "? super
" निर्दिष्ट किए बिना भी ठीक है?
धन्यवाद, यह एक उपयोगी प्रस्तुति है। मुझे लगता है कि मेरी समस्या की जड़ पहली असली स्लाइड है: सूची सूची