背景:
在使用Aarrays.asList()生成的list对象,当对对象进行add()方法操作时,会报出UnsupportedOperationException异常问题。
原因:
因为Arrays.asList方法中是新生成了一个没有实现add和remove方法的ArrayList(Array的内部类),和平常的ArrayList不一样。

查看ArrayLists的源码,可见asList方法中的新生成的ArrayList的类是Arrays的内部类,该内部类没有实现add和remove方法,向上看其继承类AbstractList,这个类中的add和remove都是抛出UnsupportedOperationException异常。
解决:
可以这样重新创建个ArrayList对象
List list = new ArrayList<>(Arrays.asList())
本文解析了在使用Arrays.asList()生成的列表中add方法报错的原因,由于其内部ArrayList未实现add和remove,提供了解决方案——通过new ArrayList<>(Arrays.asList())创建。

420

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



