Rumah >Java >javaTutorial >Mengapa saya mendapat UnsupportedOperationException apabila menggunakan Java List.add()?

Mengapa saya mendapat UnsupportedOperationException apabila menggunakan Java List.add()?

Patricia Arquette
Patricia Arquetteasal
2024-11-05 02:44:02421semak imbas

Why am I getting an UnsupportedOperationException when using Java List.add()?

UnsupportedOperationException dengan Java List.add()

Apabila cuba mengubah suai senarai sedia ada dengan kaedah add() dalam Java, anda mungkin sekali-sekala menghadapi UnsupportedOperationException. Isu ini timbul disebabkan fakta bahawa tidak semua pelaksanaan Senarai menyediakan sokongan untuk menambah atau mengalih keluar elemen.

Satu senario biasa di mana ralat ini berlaku ialah apabila menggunakan kaedah Arrays.asList(). Senarai yang dikembalikan oleh Arrays.asList() tidak boleh diubah, bermakna ia tidak membenarkan pengubahsuaian struktur, termasuk menambah atau mengalih keluar elemen. Dokumentasi untuk Arrays.asList() secara eksplisit menyatakan bahawa ia mencipta "senarai saiz tetap yang disokong oleh tatasusunan yang ditentukan."

<code class="java">List<String> membersList = Arrays.asList(membersArray);
seeAlso.add(groupDn); // UnsupportedOperationException</code>

Untuk menyelesaikan masalah ini, anda boleh sama ada membuat salinan senarai menggunakan pelaksanaan boleh ubah seperti ArrayList, atau sahkan bahawa pelaksanaan Senarai khusus yang anda gunakan menyokong operasi add().

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

Atas ialah kandungan terperinci Mengapa saya mendapat UnsupportedOperationException apabila menggunakan Java List.add()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn