<分区>
List<String> list = getNames();//this returns a list of names(String).
String[] names = (String[]) list.toArray(); // throws class cast exception.
我不明白为什么?任何解决方案,解释表示赞赏。
<分区>
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/