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

时间:2012-11-14 19:26:59

标签: java string arraylist classcastexception

我遇到的问题:

如果要将字符串的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

1 个答案:

答案 0 :(得分:4)

尝试

lines.toArray(new String[lines.size()])

no args toArray返回一个Object [] check here,因此返回ClassCastException。  而重载toArray(T)则返回T []。