异常信息:
java.lang.UnsupportedOperationException
java.util.AbstractList.remove(Unknown Source)
java.util.AbstractList$Itr.remove(Unknown Source)
java.util.AbstractCollection.remove(Unknown Source)
.....................................
从异常信息可以看出,错误定位在集合使用remove方法上,原因是因为部分集合类型一样但是缺少部分方法或不支持。
如特殊情况如下:
(1)常常使用Arrays.asList()生成的List后调用add,remove这些method时出现java.lang.UnsupportedOperationException异常。这是由于:
Arrays.asLis t() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等method在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。ArrayList override这些method来对list进行操作,但是Arrays$ArrayList没有override remove(int),add(int)等,所以throw UnsupportedOperationException。
解决方法是转为ArrayList:
List list = Arrays.asList( 数组 );
List arrayList = new ArrayList( list );
网友评论