如题:在对List进行操作时发现java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下。
代码块:
public class ArraysTest {
public static void main(String[] args) {
Integer[] datas = {1,2,3,4,5};
List<Integer> list = Arrays.asList(datas);
list.add(5);
System.out.println(list.size());
}
}
执行结果:
查看源码:
public void add(int index, E element) {
throw new UnsupportedOperationException();
}
Arrays.asList()返回的是AbstractList抽象类的Arrays的内部类ArrayList,而不是java.util.ArrayList.
java.util.ArrayList重写这些方法而Arrays的内部类ArrayList没有重写,所以会抛出异常