Heim  >  Artikel  >  Java  >  Warum erhalte ich beim Ändern einer Liste eine UnsupportedOperationException?

Warum erhalte ich beim Ändern einer Liste eine UnsupportedOperationException?

Linda Hamilton
Linda HamiltonOriginal
2024-11-06 03:35:02490Durchsuche

Why Do I Get an UnsupportedOperationException When Modifying a List?

Unsupported Operation Exception während der Listenänderung: Enthüllung der Grundursache

Beim Versuch, eine Liste durch Hinzufügen von Elementen zu ändern, kann eine UnsupportedOperationException auftreten. Diese Ausnahme ergibt sich aus der unveränderlichen oder eingeschränkten Natur bestimmter Listenimplementierungen.

Identifizierung der betroffenen Implementierung

Eine häufige Instanz betrifft die von Arrays.asList() zurückgegebene Liste. Wie dokumentiert, hat diese Liste eine feste Größe und verbietet strukturelle Änderungen, einschließlich des Hinzufügens und Entfernens von Elementen.

Auch wenn Sie nicht direkt über Arrays.asList() mit der Liste interagieren, kann das Problem dennoch auftreten aufgrund des Vorhandenseins anderer unveränderlicher Listenimplementierungen oder solcher mit begrenzten Änderungsmöglichkeiten.

Erkundung der Erkenntnisse der Ausnahme

Um die Grundursache zu verstehen, lesen Sie die Dokumentation für beide UnsupportedOperationException und List.add(). Letzteres gibt an, dass die add()-Operation eine „(optionale Operation)“ ist, wie in der List-Dokumentation beschrieben.

Lösung des Problems: Erstellen einer Problemumgehung

Als Workaround können Sie die unveränderliche Liste in eine veränderbare Implementierung wie ArrayList duplizieren:

<code class="java">seeAlso = new ArrayList<>(seeAlso);</code>

Mit diesem Ansatz können Sie Änderungen wie das Hinzufügen von Elementen zur Liste durchführen, ohne auf die UnsupportedOperationException zu stoßen.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Ändern einer Liste eine UnsupportedOperationException?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn