Создание UnorderedVector из UnorderedListADT, но получение непроверенной ошибки приведения
Я очень смущен в тот момент, когда имею дело с этой концепцией кастования объектов и еще много чего, но я считаю, что я очень близок к завершению. Если бы вы могли взглянуть на мой код и подсказать, что я могу сделать, чтобы прекратить получать эту ошибку, было бы здорово.
public E remove(int position){
position -= 1;
if(outOfBounds(position))
throw new RuntimeException("Invalid position.");
E[] temp;
temp = (E[])storage[position];// around here is where I receive the error
currentSize--;
shiftLeft(position);
return temp[position];
}// DONE
Вот моя вторая попытка после первого предложения ответа (однако, все еще получая непроверенную ошибку приведения):
public E remove(int position){
position -= 1;
if(outOfBounds(position))
throw new RuntimeException("Invalid position.");
E[]temp = (E[])new Object[maxSize];
temp = (E[])storage[position];
currentSize--;
shiftLeft(position);
return temp[position];}// DONE
1 ответ
Решение
Я не вижу определения "хранилища", но предполагаю, что это массив. Вы не можете привести массив одного типа к массиву другого типа. Вы можете привести Array только к суперклассу, такому как Object.