列表修改期間不支援的操作異常:揭示根本原因
嘗試透過新增元素來修改清單時,可能會出現 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中文網其他相關文章!