如何将ArrayList强制转换为字符串数组

uautem 发布于 2019-02-11 arraylist 最后更新 2019-02-11 21:14 9 浏览

我有一个问题: 如果您想要将字符串ArrayList导出为字符串数组,您可以尝试:

ArrayList<String> lines = new ArrayList<String>();
...
lines.add(line); // etc
...
return (String[]) lines.toArray();
并得到错误:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
    at wormbase.model.parser.FileParser.getDataObj(FileParser.java:45)
    at wormbase.model.parser.ModelParser.main(ModelParser.java:18)
引用this,toArray()将返回一个不是字符串的对象列表。
return lines.toArray(new String[lines.size()]);
修复了这个问题。 编辑:感谢gangnamstyleoverflow
已邀请:

fharum

赞同来自:

尝试

lines.toArray(new String[lines.size()])
没有args toArray返回一个Object []检查here,因此ClassCastException。  而重载的toArray(T)返回T []。