全部产品
云市场

java_lang_ArrayStoreException

更新时间:2018-04-19 20:40:10

问题分析:

这是数组存储异常,当试图将类型不兼容类型的对象存入一个Object[]数组时将引发异常。

解决方案:

当试图将类型不兼容类型的对象存入一个Object[]数组时将引发异常,建议根据堆栈信息修改存储对象类型。

代码示例:

  1. class Father{}
  2. class Son extends Father{}
  3. ... ...
  4. public void handleArrayStoreException(){
  5. Father[] fathers=new Son[3];
  6. // 此处会抛异常
  7. try {
  8. // 无法存父类对象,只能存子类对象
  9. fathers[0]=new Father();
  10. } catch (ArrayStoreException e) {
  11. e.printStackTrace();
  12. }
  13. // 正确的代码
  14. Father father=new Father();
  15. Son son=new Son();
  16. if(son instanceof Son){
  17. // 可以存进数组
  18. fathers[1]=son;
  19. }
  20. if(father instanceof Son){
  21. // 无法存进数组
  22. fathers[2]=father;
  23. }
  24. }

参考文献:

  1. https://docs.oracle.com/javase/7/docs/api/java/lang/ArrayStoreException.html