从 UnorderedListADT 生成 UnorderedVector,但出现未经检查的转换错误
Making an UnorderedVector from an UnorderedListADT, but getting an unchecked cast error
目前,在处理铸造对象等概念时,我感到非常困惑,但我相信我已经非常接近完成了。如果您可以看看我的代码并告诉我如何停止收到此错误,那就太好了。
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
我没有看到 "storage," 的定义,但我认为它是一个数组。您不能将一种类型的数组转换为另一种类型的数组。您只能将 Array 转换为超类,例如 Object.
目前,在处理铸造对象等概念时,我感到非常困惑,但我相信我已经非常接近完成了。如果您可以看看我的代码并告诉我如何停止收到此错误,那就太好了。
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
我没有看到 "storage," 的定义,但我认为它是一个数组。您不能将一种类型的数组转换为另一种类型的数组。您只能将 Array 转换为超类,例如 Object.