पाठ 1 / 38

जेनरिक्स गहराई में

Java जेनरिक्स में गहराई — टाइप इरेज़र व उसके परिणाम, बाउंडेड टाइप पैरामीटर, वाइल्डकार्ड, और producer-extends / consumer-super (PECS) नियम।

टाइप इरेज़र

जेनरिक्स कम्पाइल-टाइम फ़ीचर है। जाँच के बाद टाइप पैरामीटर मिटा दिए जाते हैं, इसलिए List<String> और List<Integer> का एक ही रनटाइम क्लास है।

बाउंडेड टाइप पैरामीटर

<T extends Comparable<T>> T को सीमित करता है ताकि compareTo कॉल हो सके।

static <T extends Comparable<T>> T max(List<T> xs) {
    T best = xs.get(0);
    for (T x : xs) if (x.compareTo(best) > 0) best = x;
    return best;
}

PECS

Producer Extends, Consumer Super. पढ़ने के स्रोत के लिए ? extends T, लिखने के लिए ? super T