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)
我在这做错了什么?
方法调用list.toArray()返回Object []类型的数组.你不能把它强制转换为String [],即使它只包含字符串.
但是你可以创建一个String []类型的数组,其中包含一个List.toArray()的兄弟,它接受一个所需类型的初始数组:
foo( list.toArray( new String[ list.size() ] ) );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |