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();
    }
posted @ 2020-08-20 15:23  哈哈丶丶  阅读(151)  评论(0编辑  收藏  举报