मेरे पास Map
है जिनकी चाबियाँ सामान्य प्रकार Key<T>
हैं, और मान List<T>
प्रकार हैं। यदि कुंजी Key<String>
का उदाहरण है, तो मान List<String>
होना चाहिए, और एक ही नियम किसी अन्य कुंजी-मूल्य जोड़े पर लागू होता है। मैं निम्नलिखित की कोशिश की है, लेकिन यह संकलन नहीं करता है:परिवर्तनीय जेनेरिक के साथ एक नक्शा कैसे घोषित करें?
Map<Object, List> map;
मैं जानता हूँ कि यह बुरा है, लेकिन मैं वर्तमान में कोई बेहतर विकल्प है:
Map<T, List<T>> map;
वर्तमान में मैं "आंशिक" जेनरिक के साथ यह घोषणा करने के लिए है । क्या इस स्थिति में जेनेरिक का उपयोग करना संभव है?
अद्यतन
शायद मैं मेरी समस्या स्पष्ट रूप से व्यक्त नहीं किया।
map.put(new Key<String>(), new ArrayList<String>());
map.put(new Key<Integer>(), new ArrayList<Integer>());
और निम्नलिखित कोड संकलन नहीं करना चाहिए:: मैं एक नक्शा है कि करने में सक्षम है चाहता हूँ
map.put(new Key<String>(), new ArrayList<Integer>());
कुंजी और मान हमेशा एक ही सामान्य प्रकार होना चाहिए सामान्य प्रकार कोई भी हो सकता है, जबकि, और स्पष्ट रूप से एक मानचित्र का विस्तार मेरी आवश्यकता को पूरा नहीं करता है।
स्थान समस्या नहीं होनी चाहिए। यह संभवतः जिस तरह से उपयोग किया जाता है। ओपी को ठीक करने के लिए और कोड दिखाने की जरूरत है। – Nishant
क्या आप 'टी' टाइप की कुंजी, या' कुंजी 'प्रकार की कुंजी का उपयोग कर रहे हैं? –
अपने वास्तविक परिदृश्य के साथ, आपको अपनी समस्या को हल करने के लिए encapsulation का उपयोग करना चाहिए क्योंकि निशांत और जियोफ उनके उत्तरों में बताते हैं, बस इसे अपने वास्तविक कोड में अनुकूलित करें। –