Скопируйте один массив в другой в Java.ArrayStoreException - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь скопировать новый массив в конце того, который у меня есть, но он продолжает говорить ArrayStoreException в System.arraycopy, и я не знаю почему, у него должно быть пространство и все.

этоэто код:

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 голосов
/ 05 декабря 2018

Согласно документации Java SE API , Аргументами из System.arraycopy являются:

  • src - исходный массив.
  • srcPos - начальная позиция в исходном массиве.
  • dest - целевой массив.
  • destPos - начальная позиция в целевых данных.
  • length - количество копируемых элементов массива.

В описании метода также есть:

В противном случае, если естьиз следующего верно, ArrayStoreException генерируется, и назначение не изменяется:

  • Аргумент src ссылается на объект, который не является массивом.

  • Аргумент dest относится к объекту, который не является массивом.

  • Аргумент src и аргумент dest относятся к массивам, типы компонентов которых являются различными примитивными типами.

  • Аргумент src ссылается на массив с примитивным типом компонента, а аргумент dest ссылается на массивy со ссылочным типом компонента.
  • Аргумент src ссылается на массив со ссылочным типом компонента, а аргумент dest ссылается на массив с примитивным типом компонента.

src и dest - это массив , тогда как вы пытались скопировать в целевой объект типа GameObjectList, что является несовпадением => ArrayStoreException

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...