java - 为什么会出现空指针异常?

标签 java nullpointerexception priority-queue

我正在使用堆栈实现优先级队列,但是发生了 NullPointerException ,我不明白为什么。我正在尝试使用 MyStack 类中的 Push 方法添加整数“1”。错误发生在add语句处。

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();
    }
}

已编辑:以正确的方式反射(reflect)遇到的问题:)

最佳答案

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

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

相关文章:

java - 创建一个与ArrayList具有类似功能的新类,添加值时出错?

java - 什么是 NullPointerException,我该如何解决?

Java Regex Matcher 在处理空输入时遇到 NullPointerException

java - 如何使用包编译并运行java

java - 表的大小,size() 返回 0

algorithm - 为什么 Dijkstra 的算法使用减少键?

algorithm - GO 中的优先队列

java - 内部类中对象的 PriorityQueue - 找不到构造函数

java - 是否可以在内存中本地创建和运行 bigquery 临时表?

Java 和 Selenium 陈旧元素错误