我正在尝试为泛型类型元素编写一个固定大小的队列。用户可以调用构造函数,提供一个大小并为该大小创建一个内部数组。(见下文)
class FixedSizeQ<E>{
private E[] q;
private int N;
public FixedSizeQ(int max) {
super();
q = (E[]) new Object[max];
N = 0;
}
..
}
我想为上面定义一个 isEmpty() 和 isFull() 方法和一个 insert() 方法。如果客户端尝试将一个元素添加到已经完整的数组中,我想抛出一个异常。通过 javadocs,我认为IllegalStateException
将是正确的异常抛出。
public boolean isFull(){
return N == q.length;
}
public void insert(Item item){
if(isFull()){
throw new IllegalStateException("queue full");
}
...
}
我想知道我的理解是否正确..有人建议IllegalArgumentException
更合适。有人可以建议吗?