您的位置:首页 > 编程语言 > Java开发

java.lang.UnsupportedOperationException异常

2016-11-16 13:47 435 查看
常常使用Arrays.asLisvt()后调用add,remove这些method时出现java.lang.UnsupportedOperationException异常。这是由于:

Arrays.asLisvt() 返回java.util.Arrays$ArrayList,而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等method在AbstractList中是默认throwUnsupportedOperationException而且不作任何操作。ArrayListoverride这些method来对list进行操作,但是Arrays$ArrayList没有overrideremove(int),add(int)等,所以throw
UnsupportedOperationException。

解决方法是使用Iterator,或者转换为ArrayList

       List<String> aList = Arrays.asList(new String[] {"1","2","3","6"});

        List<String> bList = Arrays.asList(new String[] {"1","2","3"});

        List<String> arrayList = new ArrayList<String>(aList);

        boolean a = arrayList.removeAll(bList);

        System.out.println(a);//true

        System.out.println(Arrays.toString(arrayList.toArray()));//6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: