1. 問題の提示
リスト データ (List<String>) を削除すると、エラー java.lang.UnsupportedOperationException が報告されます。
2. 問題の原因
1. エラー レポートをクリックすると、2 つのパッケージがあることを確認します: a、java.util.ArrayList パッケージ、b、java.util.Arrays.ArrayList パッケージ (キー ポイント)
2. Arrays.asList() によって生成された List の add メソッドと delete メソッドを呼び出すと例外が報告されますこれは、Arrays.asList() が java.util.ArrayList ではなく Arrays の内部クラス ArrayList を返すためです。
3. asList メソッドを使用して親クラスの追加と削除を継承すると、UnsupportedOperationException 例外がスローされるだけであり、java.util.ArrayList は親クラスの追加と削除を書き換えます。
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
}