我正在以下列方式使用Stack ...我在第26行遇到问题:
import java.util.Vector;
public class Stack<E> {
private Vector <E> v=new Vector <E>(1);
public int getSize() {
return v.size();
}
public boolean isEmpty() {
return (v.isEmpty());
}
public E getTop() {
return v.lastElement();
}
public E pop() {
E p;
if (!isEmpty()) {
p = v.lastElement();
v.remove(v.size() - 1);
}
/*return p; what to do here?? when stack is empty how to return and what to?* /
}
public void push(E p) {
v.add(p);
}
}
答案 0 :(得分:0)
虽然没有真正建议,但还有一种方法是返回null:
public E pop() {
E p = null;
if (!isEmpty()) {
p = v.lastElement();
v.remove(v.size() - 1);
}
return p;
如果你能为堆栈中使用的类型提供一个默认构造函数会更好,这样你就可以检查一个对象是否有效。
E p = new E(); // invalid object
您可能需要查看Null Object Pattern,其中提供了有关此内容的更多信息。