天天看點

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報錯