問題の説明
この例外は、互換性のない型のオブジェクトを Object[]
配列に追加すると発生します。
解決策
この例外は、互換性のない型のオブジェクトを Object[]
配列に追加すると発生します。スタック情報に基づいてオブジェクトの型を変更することをお勧めします。
サンプルコード
class Father{}
class Son extends Father{}
... ...
public void handleArrayStoreException(){
Father[] fathers=new Son[3];
// 例外はここでスローされます。
try {
// 親クラスのオブジェクトは保存できず、子クラスのオブジェクトは保存できます。
fathers[0]=new Father();
} catch (ArrayStoreException e) {
e.printStackTrace();
}
// 正しいコード
Father father=new Father();
Son son=new Son();
if(son instanceof Son){
// オブジェクトを配列に追加できます。
fathers[1]=son;
}
if(father instanceof Son){
// オブジェクトを配列に追加できません。
fathers[2]=father;
}
}