2013-06-12 11 views
5

Ho il codice di esempio:Lista gettando UnsupportedOperationException

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

e la seguente eccezione è stato gettato

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

mia domanda è perché io non sono in grado di aggiungere nuova stringa alla mia lista?

risposta

5

Arrays.asList(..) restituire una raccolta non modificabile. Se si vuole modificarlo, fare una copia:

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

In alternativa, è possibile utilizzare guava:

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

Non dovrebbe essere parametrizzato ('ArrayList ')? –

+4

da Java 7 - no, il tipo viene dedotto dal lato sinistro – Bozho

+0

Grazie .. La tua soluzione funziona .. – commit

7

Perché Arrays.asList(patternArray); restituisce un elenco di dimensioni fisse , ad es. non puoi aggiungere più elementi.

+1

era troppo veloce! – sanbhat

+0

Grazie capito .. – commit

0

Arrays.asList() restituisce un elenco di dimensioni fisse non modificabile.

0

Arrays.asList() restituisce un elenco di dimensioni fisse. Non puoi aggiungere elementi ad esso.

Problemi correlati