首頁  >  文章  >  Java  >  以下是一些適合您提供的文本的基於問題的英語標題: * 為什麼`List.toArray()`在轉換為`String[]`時會拋出`ClassCastException`? * 如何安全地轉換`ArrayList`

以下是一些適合您提供的文本的基於問題的英語標題: * 為什麼`List.toArray()`在轉換為`String[]`時會拋出`ClassCastException`? * 如何安全地轉換`ArrayList`

Susan Sarandon
Susan Sarandon原創
2024-10-27 08:19:31941瀏覽

Here are a few English question-based titles that fit your provided text:

* Why Does `List.toArray()` Throw a `ClassCastException` When Casting to `String[]`? 
* How to Safely Convert an `ArrayList` to a `String[]` in Java?
* Understanding the `ClassCast

了解(String[])List.toArray() 中的ClassCastException

您提供的程式碼片段在嘗試強制轉換時會引發ClassCastException字串的ArrayList 到字串陣列。出現這種情況是因為 Java 中的 toArray() 方法傳回一個 Object[] 數組,該數組與 String[] 數組不相容。

要解決此問題,您需要指定想要的數組類型使用 toArray() 時建立。在這種情況下使用的正確方法是 toArray(new String[v2.size()])。此方法指派適當大小的 String[] 數組,並將 ArrayList 中的元素指派給它。

例如:

<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>

在此更新的程式碼中,我們明確指定我們想要建立一個 String 數組,確保轉換操作成功且沒有任何 ClassCastException。

以上是以下是一些適合您提供的文本的基於問題的英語標題: * 為什麼`List.toArray()`在轉換為`String[]`時會拋出`ClassCastException`? * 如何安全地轉換`ArrayList`的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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