1. 程式人生 > >使用Arrays.asList丟擲java.lang.UnsupportedOperationException

使用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()會丟擲異常。