报错原因:
List的创建方式是这样的:
Arrays.asList("hello, world");
此方法的返回值不是我们常用的ArrayList,是同名的Arrays
内部类
这个内部类没有重写List类的add
、remove
和clear
方法,所以实现的是继承的AbstractList类的方法,阅读AbstractList类的源码发现如果不重写这个三个方法,则直接抛出UnsupportedOperationException
异常。
public boolean add(E e) {
add(size(), e);
return true;
}
public void add(int index, E element) {
throw new UnsupportedOperationException();
}
解决方法
修改List 的创建方式。
List<String> list = new ArrayList<>(Arrays.asList("hello, wrold"));