Java5 or 6の話です。

どっちでもできるとか、どっちかでしかできないとかは明記しません。多分。
どっちでやったか、は書いておきます。
※尚、本サイトの記事は個人的な勉強のメモのため、内容の正確性には責任が持てません。予めご了承ください。


配列の拡張
Ver:Java5
配列で受け取ったデータに、新しいデータを追加したかった。
配列は拡張できないので、
一旦リストに渡して再度配列に入れなおす方法をとった。
なんか、

ClassCastException
Class cannot be casted to array

が出たので対応をメモ。

まず、
受け取ったBean型配列(型は自作クラスという意味で)sourceBeansをリストに。

List<Bean> aryList = new ArrayList<Bean>();
for (Bean bean : sourceBeans) {
    aryList.add(bean);
}


新しいデータを取得してBeanクラスを構成。
リストに追加

Bean newBean = new Bean();
newBean.set・・・
・・・(省略)・・・
aryList.add(newBean);


リストから配列へ変換。

Bean[] targetBeans = (Beans[]) aryList.toArray();


ここでClassCastException。


対応としては、利用するtoArrayメソッドを
引数にintを取るものに変える。
使ってるメソッドが間違ってただけかな?

Bean[] targetBeans
     = aryList.toArray(new Beans[aryList.size]);