java - ArrayList 无法使用 (String[])list.toArray() 转换为字符串数组。为什么?

标签 java string arraylist toarray

为什么下面的代码无法执行,但它不会检测为来自 IDE 的错误。它会编译得很好。

 ArrayList<String> a = new ArrayList<String>();
    a.add("one");
    a.add("two");
    a.add("three");
    String [] b = (String[])a.toArray();
    for(int i =0;i<b.length;++i){
        System.out.println(b[i]);
    }

但是会报如下错误。

nested exception is java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

谁能给个明确的解释?之前有人问过同样的问题,并提供了一些解决方案。但对问题的明确解释将不胜感激。

最佳答案

你应该简单地做:

String[] b = new String[a.size()];
a.toArray(b);

你收到错误是因为 toArray()返回 Object[] 并且不能转换为 String[]

关于java - ArrayList 无法使用 (String[])list.toArray() 转换为字符串数组。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20119170/

相关文章:

python - 使用 python 查找频繁的字符串模式

java - 从列表中删除重复的键 Map.Entry

java - 如何避免重复评估 EL

java - 在不支持的语言中添加可选参数时,最好的设计是什么?

java - 如何在数据库中保存样式文本并在 JEditor Pane 中检索相同样式的文本

java - 如何获取 ArrayList<double> 的大小并将其设置到 jTextField 中以便我可以看到它

java - 如何将 StringTokenizer 结果带到 Java 中的 ArrayList?

java - 使用存储访问框架打开特定路径

string - Rust 字符串不是字符串

javascript - 在javascript中使用正则表达式进行序列重复验证