UnsupportedOperationException at java.util.AbstractList.remove

UnsupportedOperationException at java.util.AbstractList.remove(AbstractList.java:638)

【问题场景】

  • 在给RecyclerView.Adapter传递数据源的时候,
    我传递进去了Arrays.asList构成的列表,在调用lists.remove()方法删除某个元素的时候,出现了这个异常;

【解答】

  • 我使用了Arrays.asList()方法,通过查看源码知道,这个方法调用了Arras.ArrayList(E[])来构建列表,
    而这个列表是final的,不可modify的,所以会出现UnsupportedOperationException异常;
  • 解决办法1:使用new ArrayList<>();的方式来新建列表,而不是Arrays.asList或数组的方式;
  • 解决方法2:new ArrayList<>(Arrays.asList(“1”,”2”)); // 即封装下就可;

【外部链接】