报错原因:
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"));
本文详细解析了使用Arrays.asList(hello,world)创建List时遇到的UnsupportedOperationException问题,原因是该方法返回的不是ArrayList,而是Arrays内部类的一个实例,该内部类未重写add、remove和clear方法。解决方法是通过new ArrayList<>(Arrays.asList(hello,world))创建List,确保可以进行元素操作。
457

被折叠的 条评论
为什么被折叠?



