Люди говорят, что метод asList
преобразует массив в список и его не копирует, поэтому каждое изменение в 'aList' будет отражено в 'a'. Поэтому добавление новых значений в 'aList' является незаконным, так как массив имеет фиксированный размер.
Но метод asList()
возвращает ArrayList<T>
. Как компилятор отличает строку 3 от 5. Линия 3 дает мне исключение (UnsupportedOperationException
).
String[] a = {"a","b","c","d"};//1
List<String> aList = Arrays.asList(a);//2
aList.add("e");//3
List<String> b = new ArrayList<String>();//4
b.add("a");//5