操作例外: java.lang.UnsupportedOperationException List.remove/add メソッドがエラーを報告する

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
                }

おすすめ

転載: blog.csdn.net/LoveFHM/article/details/129705726