Arrays.asList使用UnsupportedOperat

2018-02-27  本文已影响5人  wooody

问题描述

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("测试");
    }
}

上一篇下一篇

猜你喜欢

热点阅读