我正在尝试复制一个新数组,但是我一直在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,那么我该如何合并两个列表?我不知道该怎么办。
答案 0 :(得分:1)
根据Java SE API documentation,System.arraycopy
的参数为:
src
-源数组。srcPos
-源数组中的起始位置。dest
-目标数组。destPos
-目标数据中的起始位置。length
-要复制的数组元素的数量。在method description中,还有:
否则,如果满足以下任一条件,则将引发ArrayStoreException且不会修改目标:
src参数引用的对象不是数组。
dest参数引用的对象不是数组。
src参数和dest参数引用其组件类型为不同原始类型的数组。
- src参数引用具有原始组件类型的数组,而dest参数引用具有参考组件类型的数组。
- src参数引用具有引用组件类型的数组,而dest参数引用具有原始组件类型的数组。
src
和dest
是数组,而您试图复制到类型为GameObjectList
的目标对象,这是不匹配的=> {{1 }}