运行如下代码:
List<Integer> list = Arrays.asList(1,2,3);
list.add(4);
报如下异常:
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:131)
at java.util.AbstractList.add(AbstractList.java:91)
at com.netease.cms.logic.SitemapBase.main(SitemapBase.java:296)
看了一下,Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList
Arrays$ArrayList和ArrayList都是继承AbstractList, add,remove等方法在AbstractList中是默认throw UnsupportedOperationException, ArrayList override这些方法来对list进行操作,但是Arrays$ArrayList没有override这些方法,所以throw UnsupportedOperationException。
本文探讨了使用Java中Arrays.asList()方法创建列表时遇到UnsupportedOperationException的原因。该方法返回的列表对象不允许修改,尝试添加或删除元素会触发异常。
1185

被折叠的 条评论
为什么被折叠?



