java.lang.UnsupportedOperationException错误

在写测试方法时,对数组Arrays.asList(str);处理生成的list进行add、remove操作时报错;

public static void main(String[] args) {
String[] str = {"aa","bb","cc","dd"};
List<String> list = Arrays.asList(str);
list.add("ff");
List<String> arr = new ArrayList<>();
}
报错信息:

Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(AbstractList.java:161)

查看asList方法源码,发现返回的是是Arrays的内部类ArrayList,虽然他继承了AbstractList类,但是没有重写add和remove方法,所以执行失败报错;

而相对于java.util.ArrayList;也继承了AbstractList类,但是重写了add和remove操作,所以对于new ArrayList<>();可以执行add和remove操作。

猜你喜欢

转载自www.cnblogs.com/happy2333/p/12915599.html
今日推荐