高手的存在,就是让服务10亿人的时候,你感觉只是为你一个人服务......

Java中Arrays.asList不能使用add方法

目录

我们知道Java数组可以使用Arrays.asList方法,将其转成List集合,操作起来比较方便。
最近发现Arrays.asList得到的List无法进行add等操作。

举个简单的例子:

1
2
3
4
5
  public static void main(String[] args) {
String[] str = { "aa", "bb" };
List<String> list = Arrays.asList(str);
list.add("haha");
}

运行的时候报错:

Exception in thread “main” java.lang.UnsupportedOperationException


查看源码发现:
Arrays.asList方法返回的ArrayList是继承的AbstractList
Alt text

AbstractList 类中实现的add、remove等一些方法中throw UnsupportedOperationException导致。


建议使用Apache commons包中的ArrayUtils工具类进行数组相关操作。