Think Twice
IT技術メモ | Javaのメモ
Created: 2008-09-02 / Updated: 2021-10-03

Javaでオブジェクト配列を特定の型の配列にキャストする


当メモは2008-09-02に投稿されたものを加筆修正し、再掲したものです。

目次


配列のキャスト

以下を実行するとjava.lang.ClassCastExceptionが発生する。

Copy
Object[] objArray = new Object[]{
    "aaa",
    "bbb",
    "ccc"
};
String[] strArray = (String[]) objArray;
for (String str : strArray) {
    System.out.println(str);
}

これは、Object配列(Object)を一気にString配列(String)にキャストできないから。
しかたないので、いったんCollectionにしてから戻すとうまくいく。

Copy
String[] strArray = Arrays.asList(objArray).toArray(new String[objArray.length]);

参考

元記事

サンプルソース