首頁  >  文章  >  Java  >  為什麼修改清單時出現 UnsupportedOperationException?

為什麼修改清單時出現 UnsupportedOperationException?

Linda Hamilton
Linda Hamilton原創
2024-11-06 03:35:02490瀏覽

Why Do I Get an UnsupportedOperationException When Modifying a List?

列表修改期間不支援的操作異常:揭示根本原因

嘗試透過新增元素來修改清單時,可能會出現 UnsupportedOperationException。此異常源自於某些 List 實作的不可變或受限性質。

辨識受影響的實作

一個常見實例涉及 Arrays.asList() 傳回的 List。如文件所述,此清單是固定大小的,並且禁止結構修改,包括新增和刪除元素。

即使您沒有直接透過 Arrays.asList() 與列表交互,問題仍然可能出現由於存在其他不可變 List 實現或修改能力有限的實現。

探索異常的見解

要掌握根本原因,請參閱兩者的文件UnsupportedOperationException 和 List.add()。後者指定 add() 操作是“(可選操作)”,如 List 文件中所述。

解決問題:制定解決方法

作為解決方法,請考慮將不可變的List 複製到可修改的實作中,例如ArrayList:

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

此方法可讓您執行修改,例如在清單中新增元素,而不會遇到UnsupportedOperationException。

以上是為什麼修改清單時出現 UnsupportedOperationException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn