java - ArrayList.toString 异常

标签 java arrays string arraylist classcastexception

我正在使用 ArrayList 来存储一些字符串形成一个字符串数组:

ArrayList<String> list = new ArrayList<>();
list.add(strings[i]);

为了将它们提供给另一个函数,我将它们转换回数组:

foo((String[]) list.toArray());

这给了我一个异常(exception):

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

我在这里做错了什么?

最佳答案

方法调用 list.toArray() 返回一个 Object[] 类型的数组。您不能将它转换为 String[],即使它只包含字符串。

但是您可以使用 List.toArray() 的兄弟创建一个 String[] 类型的数组,该数组接受所需类型的初始数组:

 foo( list.toArray( new String[ list.size() ] ) );

关于java - ArrayList.toString 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16267142/

相关文章:

java - 在 Java/处理中清空数组

c++ - 带有文本和整数组件的 ShowMessage

c++ - 如何将 `const char *GetVersion()`(来自第三方库)分配给变量?

c - "Image reflecting"程序(不是实际图像,仅反射(reflect)用字符绘制的图画)

java - 代码生成实用程序生成 java 模板以访问所有方法和对象(嵌套)

java - 需要访问源的 Gradle 自定义插件

javascript - 通过 Jquery AJAX 从复选框 POST 数组

java - 带有新关键字的字符串和java中的直接赋值

java - NullPointerException 尝试从 JnativeHook 鼠标事件设置 javafx TextField 文本时出错

java - 根据另一个数组的值重写一个 Java 数组