美文网首页
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