问题分析
这是数组存储异常,当试图将类型不兼容类型的对象存入一个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;
}
}
参考文献
文档内容是否对您有帮助?