Java ArrayList.toString异常

Java ArrayList.toString异常,java,arrays,string,arraylist,classcastexception,Java,Arrays,String,Arraylist,Classcastexception,我使用ArrayList存储字符串数组中的一些字符串: ArrayList<String> list = new ArrayList<>(); list.add(strings[i]); 这给了我一个解释: Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; 我做错了什么?方法调用list.t

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

ArrayList<String> list = new ArrayList<>();
list.add(strings[i]);
这给了我一个解释:

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

我做错了什么?

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

但您可以创建一个字符串[]类型的数组,其同级为List.toArray(),该数组接受所需类型的初始数组:

 foo( list.toArray( new String[ list.size() ] ) );
你必须这样做

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