我目前正在制作一个有界阵列堆栈。此方法将大于存储容量的数组抛出到StackOverflowException
,除了我不断收到" throws StackOverflowException
部分的错误消息
public void push(T item) throws StackOverflowException {
//push item onto the stack,
if (isFull()) throw new StackOverflowException();
else {
top++;
storage[top] = item;
}
}
错误讯息:
错误:(52,17)java:
push(T)
中的com.ld.BoundedArrayStack
不能push(T)
覆盖方法中的实现com.ld.StackADT
不会抛出com.ld.StackOverflowException
其他消息:
push(T)
与com.Id.BoundedArrayStack
冲突中的
push(T)
com.Id.StackADT
;重写方法不抛出com.Id.StackOverflowException
我不明白这是什么问题。
答案 0 :(得分:3)
从您的错误消息中,您的超类StackADT
定义push
不要抛出StackOverflowException
,因此任何覆盖此方法的行都不能抛出StackOverflowException
。
你可以:
StackOverflowException
成为RuntimeException
,随时都可以抛出。您不必在throws
子句或push
中声明StackADT
方法,使其throws
成为StackOverflowException
。