Java Exception in thread “main“ java.lang.UnsupportedOperationException

在使用Arrays.asList()添加数据时,发生异常:

Java Exception in thread “main“ java.lang.UnsupportedOperationException_第1张图片

 public static void main(String[] args) {
         //泛型集合
        List list=Arrays.asList("peter","john","collection");
        //添加
        get_addAll(list);
        
    }

    /**
     *  1.addAll(集合,要添加的元素) 将所有指定元素添加到指定集合中
     * @param list
     */
    private static void get_addAll(List list) {

        Collections.addAll(list,"mike","zhang","boy");
        System.out.println("添加数据:"+list);
    }

原因:

      Arrays.asList(strArray)产生的list只可以对其进行查询和修改,如果对其进行删除或者新增,则就会抛出异常。

Arrays.asList(strArray)返回值是java.util.Arrays类中一个私有静态内部类java.util.Arrays.ArrayList具有 set(),get()等方法,不具有添加add()或remove()方法,所以新增或者删除会报错。
 

 查看源码:

Java Exception in thread “main“ java.lang.UnsupportedOperationException_第2张图片

 查看ArrayList类

Java Exception in thread “main“ java.lang.UnsupportedOperationException_第3张图片

 解决:再套一层ArrayList,就是重新把转换出的list转成java.utils下的ArrayList

Java Exception in thread “main“ java.lang.UnsupportedOperationException_第4张图片

 

你可能感兴趣的:(JAVA,java,jvm,spring)