Arrays.asList()引起的java.lang.UnsupportedOperationException

来源:互联网 发布:linux http代理服务器 编辑:程序博客网 时间:2024/06/05 13:22

异常积累:java.lang.UnsupportedOperationException (转载)

文章来源:http://hi.baidu.com/%C2%CC%B0%D3%D0%C4%C9%F1%B2%BB%C4%FE/blog/item/139b9b17a3c3b44621a4e935.html    
在使用Arrays.asList()后调用add,remove这些method时出 现java.lang.UnsupportedOperationException异常。这是由于Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等 method在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。ArrayList override这些method来对list进行操作,但是Arrays$ArrayList没有override remove(),add()等,所以throw UnsupportedOperationException。
例如:

String[] s = {
"one", "two", "three", "four", "five",
"six", "seven", "eight", "nine", "ten",
};

List a = Arrays.asList(s);

解决办法:List b = new ArrayList(a);然后再去执行add和remove;

0 0
原创粉丝点击