今天写了一个String转list,然后新创建的list.add()会报错java.lang.UnsupportedOperationException
List<String> list = Arrays.asList("1,2,3");
list.add("2");
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
/**
* @serial include
*/
private static class ArrayList<E> extends AbstractList<E>
implements RandomAccess, java.io.Serializable
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
调用Arrays.asList方法后,创建了一个ArrayList对象,Arrays中的java.util.Arrays.ArrayList是一个内部类,它和java.util.ArrayList都继承了AbstractList,但是并没有重写add方法,调用了父类的add方法,而弗雷德add方法抛异常
public boolean add(E e) {
add(size(), e);
return true;
}
public void add(int index, E element) {
throw new UnsupportedOperationException();
}