Java中堆栈的push()方法中的NullPointerException
如何将Java中堆栈的push()方法中的NullPointerException,java,stack,nullpointerexception,Java,Stack,Nullpointerexception,如何将NullPointerException合并到Java中堆栈的以下push()方法中 public void push(E e) { int len = size(); if (len == 0) throw new NullPointerException(); else addElement(e); System.out.println("The element pushed
NullPointerException
合并到Java中堆栈的以下push()
方法中
public void push(E e) {
int len = size();
if (len == 0)
throw new NullPointerException();
else
addElement(e);
System.out.println("The element pushed is " + e);
}
在PSVM中,每当我调用push()
方法时,它都会发出NullPointerException,而不会添加到堆栈中
public static void main(String[] args) {
try {
SortableStack<Object> s = new SortableStack<Object>();
s.push(10);
s.push(20);
System.out.println("The element popped is " + s.pop());
}
catch (NullPointerException e) {
System.out.println("Null Pointer Exception encountered!");
}
}
publicstaticvoidmain(字符串[]args){
试一试{
SortableStack s=新的SortableStack();
s、 推(10);
s、 推(20);
System.out.println(“弹出的元素是”+s.pop());
}
捕获(NullPointerException e){
System.out.println(“遇到空指针异常!”);
}
}
我不能百分之百确定您想要实现什么,但您应该检查null
-是否为e
,而不是堆栈的大小:
public void push(E e) {
if (e == null) {
throw new NullPointerException("Can't push a null element");
}
addElement(e);
System.out.println("The element pushed is " + e);
}
我猜这是因为当你创建对象时,它的初始大小是零。当您调用
push
时,它会执行大小检查(如果len==0)
,发现它为零,因此抛出一个npe 非常感谢你!工作顺利,速度快@泽山,别忘了把答案标记为