2013-06-12 5 views
5

मैं नीचे नमूना कोड है:सूची फेंकने UnsupportedOperationException

String[] patternArray = {"1","2","3"}; 
List<String> patternCheck = Arrays.asList(patternArray); 
patternCheck.add("4"); 

और निम्न अपवाद

Exception in thread "main" java.lang.UnsupportedOperationException 
    at java.util.AbstractList.add(Unknown Source) 
    at java.util.AbstractList.add(Unknown Source) 

मेरा प्रश्न फेंक दिया गया था यही कारण है कि मैं अपने सूची में नए स्ट्रिंग जोड़ने में सक्षम नहीं कर रहा हूँ?

उत्तर

5

Arrays.asList(..) एक अपरिवर्तनीय संग्रह लौटाता है।

List<String> list = new ArrayList<>(Arrays.asList(..)) 

वैकल्पिक रूप से, आप guava उपयोग कर सकते हैं: आप इसे संशोधित करने के लिए चाहते हैं, एक प्रतिलिपि बनाने

List<String> list = Lists.newArrayList("1", "2", "3"); 
+0

यह parametrized नहीं होना चाहिए ('ArrayList ')? –

+4

जावा 7 के बाद से - नहीं, प्रकार बाएं हाथ की ओर से अनुमानित है – Bozho

+0

धन्यवाद .. आपका समाधान काम करता है .. – commit

7

क्योंकि Arrays.asList(patternArray);निश्चित आकार की सूची देता है, उदा। आप और तत्व जोड़ नहीं सकते हैं।

+1

यह बहुत तेज़ थी! – sanbhat

+0

धन्यवाद यह .. – commit

0

Arrays.asList() एक अपरिवर्तनीय, निश्चित-आकार सूची देता है।

0

Arrays.asList() एक निश्चित आकार की सूची देता है। आप इसमें तत्व नहीं जोड़ सकते हैं।

संबंधित मुद्दे