美文网首页
Arrays.asList使用UnsupportedOperat

Arrays.asList使用UnsupportedOperat

作者: wooody | 来源:发表于2018-02-27 14:14 被阅读5次

    问题描述

    import java.util.Arrays;
    import java.util.List;
    
     
    public class ArraysListTest {
    
        public static void main(String[] args) {
    
            List<String> stringList = Arrays.asList("中国", "china", "国家");
            stringList.add("测试");
        }
    }
    

    在初始化一个List的时候图方便直接使用了Arrays.asList(T...t),但是往里面增加对象的时候报UnsupportedOperationException。


    image.png

    原因

    new ArrayList<>返回了ArrayList对象(java.util.ArrayList)这个是一个常见的的列表类型;Arrays.asList(T...t)也可以返回了一个ArrayList,但是这个是java.util.Arrays.ArrayList(Arrays的一个内部类),名字都是ArrayList但是差别很大,Arrays.ArrayList是不可修改,增加或者删除元素都会报UnsupportedOperationException。

    解决

    如何将Arrays.asList转为我们正常的util包下面的ArrayList对象?可以通过new ArrayList(Arrays.asList(T... t))来实现;

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    
    public class ArraysListTest {
    
        public static void main(String[] args) {
    
            List<String> stringList = new ArrayList<>(Arrays.asList("中国", "china", "国家"));
            stringList.add("测试");
        }
    }
    
    

    相关文章

      网友评论

          本文标题:Arrays.asList使用UnsupportedOperat

          本文链接:https://www.haomeiwen.com/subject/iizpxftx.html