使用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()会抛出异常。

 


posted @ 2018-12-29 23:56  GrapefruitTea  阅读(141)  评论(0编辑  收藏  举报