Arrays.asList的坑
Arrays.asList 方法的坑
此方法接受可变个数的参数 构建一个ArrayList 可此ArrayList 非彼ArrayList ,他返回的是 Arrays 的一个内部类,实现了AbstractList抽象类,并只重写了 很少的一部分方法,维护了一个固定长度的数组,如果调用add 或者remove 方法 都会报错
示例:
public static void main(String[] args) {
List<String> list = Arrays.asList("123", "456");
list.remove(0);
}
报错:
Exception in thread "main" java.lang.UnsupportedOperationException
这个错是父类AbstractList 定义的,应该是希望子类都要重写吧
public E remove(int index) {
throw new UnsupportedOperationException();
}