了解 (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中文网其他相关文章!