我正在使用堆栈实现优先级队列,但是发生了NullPointerException,我不知道为什么。我试图通过使用MyStack类中的push方法来添加整数“ 1”。错误发生在添加语句。

class MyStack<E> {
    private PriorityQueue<MyNode<E>> pq;
    int p =0;

    public void push(int j){
        p++;
        pq.add(new MyNode(j,p)); // error detected here
    }

    public MyNode pop(){
        if(isEmpty()){
            return null;
        }
        return pq.poll();
    }

    public boolean isEmpty() {
        return pq.isEmpty();
    }
}


编辑:以适当的方式反映遇到的问题:)

最佳答案

如果代码完整,则很简单:永远不会初始化类MyStack的成员pq。

关于java - 为什么会出现nullpointerexception?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22404280/

10-10 05:54