当メモは2008-09-02に投稿されたものを加筆修正し、再掲したものです。
目次
配列のキャスト
以下を実行するとjava.lang.ClassCastException
が発生する。
Object[] objArray = new Object[]{ "aaa", "bbb", "ccc" }; String[] strArray = (String[]) objArray; for (String str : strArray) { System.out.println(str); }
これは、Object配列(Object)
を一気にString配列(String)
にキャストできないから。
しかたないので、いったんCollection
にしてから戻すとうまくいく。
String[] strArray = Arrays.asList(objArray).toArray(new String[objArray.length]);