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
}