天天看点

Exception in thread “main“ java.lang.UnsupportedOperationException Arrays.asList中add报错

public static void main(String[] args) {
        List<Integer> integers = Arrays.asList(new Integer[]{1, 2, 3, 4});
        integers.add(5);
        integers.forEach(System.out::println);

    }
           

以上代码执行add等方法报错如下:

Exception in thread “main“ java.lang.UnsupportedOperationException Arrays.asList中add报错

原因:Arrays.asList中的ArrayList集合来自(java.util.Arrays.ArrayList)包,并非来自(java.util.ArrayList)包,里面没有add等方法

解决方案:把Arrays.asList作为构造函数的参数传入ArrayList中,底层封装了转换代码

public static void main(String[] args) {
        List<Integer> integers =new ArrayList<>( Arrays.asList(new Integer[]{1, 2, 3, 4}));
        integers.add(5);
        integers.forEach(System.out::println);

    }
           
Exception in thread “main“ java.lang.UnsupportedOperationException Arrays.asList中add报错