使用Arrays.asList抛出java.lang.UnsupportedOperationException

使用 Arrays.asList("str1", "str2")生成的List,不能进行remove、add操作,会产生异常java.lang.UnsupportedOperationException。

List<String> list = Arrays.asList("str1", "str2");
list.add("str3");
System.out.println(list);

原因:

Arrays.asList() 返回java.util.Arrays$ArrayList而不是ArrayList,Arrays$ArrayList和ArrayList的父类都是AbstractList,AbstractList中对于add()、remove()是直接抛出异常。

但是ArrayList重写父类的add()和remove(),java.util.Arrays$ArrayList是没有重写的。

所以对于Arrays.asList()获取的List是执行add()和remove()会抛出异常。

猜你喜欢

转载自www.cnblogs.com/GrapefruitTea/p/10198431.html