背景:
在使用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())