Avatar ·

जावा जेनेरिक में PECS (Producer Extends Consumer Super) क्या है?

सभी को नमस्ते! मैं कुछ महीनों से Java में कोड लिख रहा हूँ, लेकिन अब भी जेनेरिक में wildcard को लेकर भ्रमित हूँ। मैंने PECS के बारे में पढ़ा, लेकिन व्यवहार में मुझे समझ नहीं आता कि कब `? extends T` और कब `? super T` का उपयोग करना चाहिए। यहाँ एक विशिष्ट उदाहरण है जो मुझे भ्रमित करता है। मेरे पास एक method है जो एक सूची से दूसरी सूची में तत्वों को कॉपी करना चाहिए: ```java public static void copy(List src, List dest) { for (Object item : src) { dest.add(item); // कम्पाइलेशन एरर! } } ``` कम्पाइलर `dest.add(item)` पर एरर दे रहा है। मैं समझता हूँ कि bounded wildcards का उपयोग करना चाहिए, लेकिन यह नहीं समझ पा रहा कि कौन से। मान लीजिए, मेरे पास एक क्लास हायरार्की है: `Animal` → `Dog` → `Puppy`। मैं एक ऐसा method लिखना चाहता हूँ जो: 1. सूची से ऑब्जेक्ट्स पढ़ता है (उदाहरण के लिए, `Dog` की सूची) 2. Z