ArrayList.toString异常

Chr*_*ian 2 java arrays string arraylist classcastexception

我使用ArrayList来存储一些字符串数组的字符串:

ArrayList<String> list = new ArrayList<>();
list.add(strings[i]);
Run Code Online (Sandbox Code Playgroud)

为了将这些函数转换为另一个函数,我将它们转换回一个数组:

foo((String[]) list.toArray());
Run Code Online (Sandbox Code Playgroud)

这给了我一个例外:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

And*_*mas 5

方法调用list.toArray()返回Object []类型的数组.你不能把它强制转换为String [],即使它只包含字符串.

但是你可以创建一个String []类型的数组,其中包含一个List.toArray()的兄弟,它接受一个所需类型的初始数组:

 foo( list.toArray( new String[ list.size() ] ) );
Run Code Online (Sandbox Code Playgroud)