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