用Java将一个数组复制到另一个数组中。 ArrayStoreException

时间:2018-12-05 12:37:30

标签: java arrays copy

我正在尝试复制一个新数组,但是我一直在System.arraycopy中说ArrayStoreException,我不知道为什么,它应该有空间和所有内容。

这是代码:

objectzombie=zombieParser(result); /*give a 4 object array*/
GameObjectList arrayt= new GameObjectList(objectzombie.size()+this.objectlist.size());

System.arraycopy(objectzombie, 0, arrayt, 0, objectzombie.size());
System.arraycopy(this.objectlist, 0, arrayt, arrayt.size(), 
this.objectlist.size());
this.objectlist=arrayt;}

感谢您的帮助;

编辑-------------

看起来,如果我没有原始数组,我将无法使用arraycopy,那么我该如何合并两个列表?我不知道该怎么办。

1 个答案:

答案 0 :(得分:1)

根据Java SE API documentationSystem.arraycopy参数为:

  • src-源数组。
  • srcPos-源数组中的起始位置。
  • dest-目标数组。
  • destPos-目标数据中的起始位置。
  • length-要复制的数组元素的数量。

method description中,还有:

  

否则,如果满足以下任一条件,则将引发ArrayStoreException且不会修改目标:

     
      
  • src参数引用的对象不是数组。

  •   
  • dest参数引用的对象不是数组。

  •   
  • src参数和dest参数引用其组件类型为不同原始类型的数组。

  •   
  • src参数引用具有原始组件类型的数组,而dest参数引用具有参考组件类型的数组。
  •   
  • src参数引用具有引用组件类型的数组,而dest参数引用具有原始组件类型的数组。
  •   

srcdest数组,而您试图复制到类型为GameObjectList的目标对象,这是不匹配的=> {{1 }}