在使用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。
解决方法是使用Iterator,或者转换为ArrayList
List list = new ArrayList(E);
参考:
http://blog.youkuaiyun.com/thunderous/article/details/3693362
这是由于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。
public static void main(String[] args) {
String bh = "3";
String[] xxc = {"1","2"};
List<String> list = Arrays.asList(xxc);
list.add(bh);
}
解决方法是使用Iterator,或者转换为ArrayList
List list = new ArrayList(E);
public static void main(String[] args) {
String bh = "3";
String[] xxc = {"1","2"};
List<String> list = new ArrayList<String>(Arrays.asList(xxc));
list.add(bh);
}
参考:
http://blog.youkuaiyun.com/thunderous/article/details/3693362