为什么它不起作用?
List<String> lista = new ArrayList<>();
lista.add("Lol");
lista.add("ball");
String [] array = (String[])lista.toArray();
它抛出一个RunTimeException (ClassCastException)
,我知道还有另一种方法可以返回列表中包含的对象,但是幕后发生了什么?我的意思是我正在将一个对象数组(实际上是一个字符串数组)转换为一个字符串数组。所以它应该编译,但没有编译。
提前致谢。
最佳答案
该版本的 toArray() 返回 Object[]
。即使其中的所有对象都是字符串,也无法将对象数组转换为字符串数组。
您可以使用lista.toArray(new String[lista.size()]);
版本来正确获取实际类型。
关于java - Collection.toArray() 方法,详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18482515/