Привет Я получаю это Java ArrayStoreException, когда я пытаюсь сохранить класс, который реализует интерфейс в массив, который определяется как массив интерфейсов. Вот код:Java ArrayStoreException при хранении интерфейса реализации класса
private Individual[] individuals;
/*
* other fields and methods here
*/
//This method runs alright
public void initializePopulationBinary() {
for(int i = 0; i < sizeOfPopulation; i++) {
BinaryIndividual individual = new BinaryIndividual();
individual.generateRandomIndividual();
this.individuals[i] = individual;
}
}
//This methods throws exception
public void initializePopulationString() {
for(int i = 0; i < sizeOfPopulation; i++) {
StringIndividual individual = new StringIndividual();
individual.generateRandomIndividual();
this.individuals[i] = individual;
}
}
индивидуал интерфейс, что оба класса BinaryIndividual и StringIndividual реализации. В чем проблема?
Показать нам полную трассировку стеки исключения, код из три класса и код, который создает массив. –
Вероятный экземпляр 'Individual []' array был инициализирован как 'new SomeImplementingClass []', поэтому сохранение экземпляров другого класса реализации вызовет 'ArrayStoreException'. Трудно сказать с отображаемым в данный момент кодом. – Mena
Да, вы правы, видите мои другие комментарии. Я действительно инициализировал его как SomeImplementingClass вместо интерфейса. Мой плохой – MichaelDD