java - 将 Object 数组转换为 String 数组会抛出 ClassCastException

标签 java arrays string object classcastexception

<分区>

List<String> list = getNames();//this returns a list of names(String).

String[] names = (String[]) list.toArray(); // throws class cast exception.

我不明白为什么?任何解决方案,解释表示赞赏。

最佳答案

这是因为无参数的 toArray 生成了一个 Object 数组。您需要调用以输出数组为参数的重载,并传递一个 String 数组,如下所示:

String[] names = (String[]) list.toArray(new String[list.size()]);

在 Java 5 或更高版本中,您可以删除强制转换。

String[] names = list.toArray(new String[list.size()]);

关于java - 将 Object 数组转换为 String 数组会抛出 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17915247/

相关文章:

string - listunagg函数?

java - 扩展类时膨胀错误

java - StackOverflow 上的递归函数

java - 在 ssh 服务器上打开 channel

java - "For"-循环停止正常工作(或者我做错了什么)

c++ - 如何连接 "on the fly"一个文本+整数并将其传递给函数?

java - 游标适配器中的空指针异常

arrays - 如何在不进行类型转换的情况下将展平实现为数组的扩展?

c++ - 无法使用指针打印二维矩阵的值

excel - 文本/字符串上的 DAX LOOKUPVALUE