Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中堆栈的push()方法中的NullPointerException_Java_Stack_Nullpointerexception - Fatal编程技术网

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

非常感谢你!工作顺利,速度快@泽山,别忘了把答案标记为