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]);