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()]);
String[] names = list.toArray(new String[list.size()]);
您正在尝试从一个 Object[]
类型的类中进行转换。该类本身是一个类型为 Object
的数组。您需要逐个进行转换,将元素添加到新数组中。
或者您可以使用已经实现的方法,通过执行以下操作:
list.toArray(new String[list.size()]);