Operationsausnahme: Die Methode java.lang.UnsupportedOperationException List.remove/add meldet einen Fehler

1. Problemdarstellung 

Beim Löschen von Listendaten (List<String>) wird ein Fehler java.lang.UnsupportedOperationException gemeldet.

2. Die Ursache des Problems

1. Klicken Sie auf den Fehlerbericht und stellen Sie fest, dass es zwei Pakete gibt: a, java.util.ArrayList-Paket; b, java.util.Arrays.ArrayList-Paket (wichtiger Punkt)

2. Der Aufruf der Add- und Remove-Methoden der von Arrays.asList() erzeugten Liste meldet eine Ausnahme. Dies liegt daran, dass Arrays.asList() die interne Klasse ArrayList of Arrays zurückgibt, nicht java.util.ArrayList.

3. Die Verwendung der asList-Methode zum Erben des Hinzufügens und Entfernens der übergeordneten Klasse löst nur eine UnsupportedOperationException-Ausnahme aus, und java.util.ArrayList schreibt das Hinzufügen und Entfernen der übergeordneten Klasse neu

4. Daher ist ArrayList erforderlich, um die Methode add()/remove korrekt zu verwenden.

Fehlercode:

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

Geänderter Code:

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

Supongo que te gusta

Origin blog.csdn.net/LoveFHM/article/details/129705726
Recomendado
Clasificación