List 调用 remove 方法时抛出 java.lang.UnsupportedOperationException 异常原因

原因

使用 Arrays.asList(arr) 转换的 List 并不能进行 add 和 remove 操作。
       Arrays.asList(arr) 返回的类型是 Aarrays$ArrayList 并不是 ArrayList,
 Aarrays$ArrayList 和 ArrayList 都继承 AbstractList,但是 AbstractList 中的 add 方法和 remove 方法都是直接抛出 UnsupportedOperationException,并没有直接实现。
 ArrayList 重写了 add 方法和 remove 方法,能够进行对应的添加和删除操作,Aarrays$ArrayList 却没有去重写,所以此时调用 add 方法和 remove 方法会抛出 UnsupportedOperationException。

解决方法

List<String> list = new ArrayList<String>(Arrays.asList(arr));

上一篇:Selenium常用API的使用java语言之19-调用JavaScript代码


下一篇:Java---网络蜘蛛-网页邮箱抓取器~源码