विस्तारित करता है क्या निम्नलिखित कार्यान्वयन को एक प्रकार से सुरक्षित तरीके से करने का कोई तरीका है?जावा जेनिक्स मानचित्र पर डाल रहा है <स्ट्रिंग,? सूची <String>>
public void myMethod(Map<String, ? extends List<String>> map)
{
map.put("foo", Collections.singletonList("bar");
}
उपर्युक्त कार्यान्वयन कार्य नहीं करता है। map.put()
विधि को संकलित करने के लिए इसे Map<String, ? super List<String>>
की आवश्यकता है। लेकिन myMethod इस तरह से सूची के किसी उप प्रकार को स्वीकार नहीं करेगा। इसलिए, मुझे इसके बजाय Map<String, ? extends List<String>>
का उपयोग करना होगा। मैं इस समस्या को एक प्रकार से सुरक्षित तरीके से कैसे हल कर सकता हूं?
एक अच्छी व्याख्या के लिए +1 (अब जब आपके जेनेरिक दिखाई दे रहे हैं: पी)। –
ओह। मैं सोचता रहता हूं कि चूंकि एसओएफ फ़िल्टर करता है वैसे भी यह एंग्लेड ब्रैकेट सामान को ठीक करता है। ओह अच्छा... – KitsuneYMG