运行异常:java.lang.UnsupportedOperationException List.remove/add方法报错

1.问题展现 

对一个列表数据(List<String>)进行删除的时候,报错 java.lang.UnsupportedOperationException。

2.问题原因

1、报错点击发现存在两个包:a、java.util.ArrayList包;b、java.util.Arrays.ArrayList包(重点)

2、调用Arrays.asList()生产的List的add、remove方法时报异常,这是由Arrays.asList() 返回的是Arrays的内部类ArrayList, 而不是java.util.ArrayList。

3、使用asList方法继承的父类的add和remove,只会抛出UnsupportedOperationException异常,java.util.ArrayList重写了父类的add和remove

4、所以要ArrayList才能正确使用add()/remove方法。

报错代码:

if (bean?.playlist?.contains(condition) == true)bean.playlist?.remove(condition)
//bean?.playlist是一个String类型的List列表,当列表里含有此string时,把它移出掉

修改后代码:

if (bean?.playlist?.contains(condition) == true){
                    val a = bean.playlist.toMutableList()//直接给他转一下
                    a.remove(condition)
                    bean.playlist = a
                }

扫描二维码关注公众号,回复: 15112488 查看本文章

猜你喜欢

转载自blog.csdn.net/LoveFHM/article/details/129705726