# जेनरिक्स गहराई में — एडवांस्ड जावा

Source: https://www.geekswithgeeks.com/hi/advanced-java/adv-generics

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

## टाइप इरेज़र

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

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

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

```java
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`।
