-4

私が抱えていた問題:

文字列の 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

4

1 に答える 1

4

試す

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

args toArrayはここでObject[]チェックを返しません。したがって、ClassCastExceptionです。一方、オーバーロードされたtoArray(T)はT[]を返します。

于 2012-11-14T19:28:38.023 に答える