Memahami ClassCastException dalam (String[])List.toArray()
Coretan kod yang anda berikan menimbulkan ClassCastException apabila cuba menghantar senarai Tatasusunan Rentetan kepada tatasusunan Rentetan. Ini berlaku kerana kaedah toArray() dalam Java mengembalikan tatasusunan Object[], yang tidak serasi dengan tatasusunan String[].
Untuk mengatasi masalah ini, anda perlu menentukan jenis tatasusunan yang anda mahu buat apabila menggunakan toArray(). Kaedah yang betul untuk digunakan dalam kes ini ialah toArray(new String[v2.size()]). Kaedah ini memperuntukkan tatasusunan String[] dengan saiz yang sesuai dan memperuntukkan elemen daripada ArrayList kepadanya.
Sebagai contoh:
<code class="java">final String[] v1 = i18nCategory.translation.get(id); final ArrayList<String> v2 = new ArrayList<>(Arrays.asList(v1)); String[] v3 = (String[])v2.toArray(new String[v2.size()]);</code>
Dalam kod yang dikemas kini ini, kami dengan jelas menyatakan bahawa kami mahu tatasusunan String dibuat, memastikan operasi pemutus berjaya tanpa sebarang ClassCastException.
Atas ialah kandungan terperinci Berikut ialah beberapa tajuk berasaskan soalan bahasa Inggeris yang sesuai dengan teks yang anda sediakan: * Mengapa Adakah `List.toArray()` Membuang `ClassCastException` Apabila Menghantar ke `String[]`? * Cara Menukar `ArrayList` dengan Selamat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!