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操作。

 

posted @ 2020-05-19 21:07  程序媛猿~  阅读(345)  评论(0)    收藏  举报