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 }