版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_28729797/article/details/80063697
代码片段:
String[] array = new String[]{"2","3","4","5","6","7"};
List<String> list = java.util.Arrays.asList(array);
if(list.contains(s)){
list.remove(s);
}
报错如下:
、
扫描二维码关注公众号,回复:
3800331 查看本文章
报错原因:
调用Arrays.asList()生产的List的add、remove方法时报异常,这是由Arrays.asList() 返回的市Arrays的内部类ArrayList, 而不是java.util.ArrayList。Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重新了这些方法而Arrays的内部类ArrayList没有重新,所以会抛出异常。
解决办法:
上面代码上加入一句话,转化为ArrayList即可
List<String> arrayList = new ArrayList<String>(list);