मेरे पास कुछ पीबी है। मैं जावासंग्रह में एक सूची डाली
Collection<T> collection = new Collection<T>(mylList);
में संग्रह करने के लिए एक सूची कास्ट करना चाहते हैं, लेकिन मैं इस त्रुटि
प्रकार संग्रह का दृष्टांत नहीं कर सकते
मेरे पास कुछ पीबी है। मैं जावासंग्रह में एक सूची डाली
Collection<T> collection = new Collection<T>(mylList);
में संग्रह करने के लिए एक सूची कास्ट करना चाहते हैं, लेकिन मैं इस त्रुटि
प्रकार संग्रह का दृष्टांत नहीं कर सकते
List<T>
पहले से ही लागू करता Collection<T>
है - तुम क्यों करने की आवश्यकता होगी एक नया बनाओ?
Collection<T> collection = myList;
त्रुटि संदेश बिल्कुल सही है - आप सीधे एक इंटरफेस का दृष्टांत नहीं कर सकते।
Collection<T> collection = new ArrayList<T>(myList);
जब मैं संग्रह करता हूं
@Mercer आप जिस विधि को बुला रहे हैं उसका हस्ताक्षर क्या है?एक सूची setMyCollection (संग्रह संग्रह) पर काम करना चाहिए, लेकिन अगर यह उदा। setMyCollection (मानचित्र संग्रह) :) और यदि यह सेट है MyCollection (सूची संग्रह) तो आपको उस सूची में कुछ डालना चाहिए सूची: सूची संग्रह = नया ArrayList(); (इसे छोटा करने के लिए जेनेरिक हटा दिए गए हैं) – extraneon
कास्टिंग की जरूरत है एक new
कभी नहीं: आप मौजूदा सूची का एक प्रतिलिपि बनाना चाहते हैं, तो आप की तरह कुछ इस्तेमाल कर सकते हैं
Collection<T> collection = myList;
तुम भी डाली स्पष्ट नहीं करते हैं, क्योंकि Collection
List
का एक सुपर-प्रकार है, इसलिए यह इस तरह काम करेगा।
जब मैं ऐसा करता हूं, तो मुझे त्रुटि होती है टाइप मिस्चैच: संग्रह
@Mercer: क्या आप यहां 'java.util.List' के बारे में बात कर रहे हैं? क्या आप हमें कुछ संदर्भ दे सकते हैं (उदाहरण के लिए, '
@ मर्सर: कृपया एक छोटा लेकिन * पूरा * उदाहरण प्रदान करें। –
अपने कोड जानने नहीं, यह थोड़ा आपके सवाल का जवाब देना मुश्किल है, लेकिन सभी जानकारी यहाँ पर आधारित है, मेरा मानना है कि इस मुद्दे को आप Collections.sort गुजर उपयोग करने के लिए एक वस्तु संग्रह के रूप में परिभाषित में कोशिश कर रहे हैं, और प्रकार है इसका समर्थन नहीं करता है।
पहला प्रश्न। ग्राहक को सामान्य रूप से परिभाषित क्यों किया जाता है? यह सूची, मानचित्र, सेट या कुछ और विशिष्ट क्यों नहीं है?
यदि ग्राहक को सूची, मानचित्र या सेट के रूप में परिभाषित किया गया था, तो आपके पास यह समस्या नहीं होगी, तब आप सीधे संग्रह .sort (क्लाइंट) का उपयोग करने में सक्षम होंगे।
HTH
वहाँ एक संग्रह
समाधान 1
List<Contact> CONTACTS = new ArrayList<String>();
// fill CONTACTS
Collection<Contact> c = CONTACTS;
समाधान 2
private static final Collection<String> c = new ArrayList<String>(
Arrays.asList("a", "b", "c"));
समाधान 3
करने के लिए सूची में कनवर्ट करने के लिए कई solusions हैसमाधान 4
List<? extends Contact> col = new ArrayList<Contact>(CONTACTS);
मैं सलाह आप जावा के आधार के बारे में एक किताब को पढ़ने के लिए। संग्रह एक इंटरफेस है, कक्षा नहीं। दोनों के विभिन्न लक्ष्यों को समझना महत्वपूर्ण है। – extraneon
@extraneon +1 एक ही चीज़ का सुझाव देने वाला था। मूल बातें की उचित समझ के बिना संग्रह का उपयोग करना एक अच्छा विचार नहीं है। – helpermethod