java - 空指针异常但变量包含值

标签 java

这段代码在线程“main”java.lang.NullPointerException 中给了我一个异常。异常发生在代码底部的 if 语句处。

    public boolean printEmployees(Node Head){
    boolean isSuccessful = true;

    Node nodeChecker = new Node();
    nodeChecker = Head;

    int hospitalEmployeeCount = 0;
    int doctorCount = 0;
    int surgeonCount = 0;
    int nurseCount = 0;
    int administratorCount = 0;
    int receptionistCount = 0;
    int janitorCount = 0;
    System.out.println(nodeChecker.getData().getRole());
    while(nodeChecker != null){
        if(nodeChecker.getData().getRole() == "h")
            hospitalEmployeeCount++;

另一段代码从文件中读取数据并填充链接列表。我已经使用断点进行了检查,链接列表就在那里。 nodeChecker 指向链表的头部,当我调用 System.out.println 语句时,它会打印 h。我不明白为什么异常不断发生。

稍后,在此方法中,我尝试打印以屏幕显示链接列表中的所有信息。我尝试注释掉这部分代码来测试其余代码,但它打印出来就像链接列表为空一样。我可以检查链接列表中的变量一直到函数末尾,它显示正确位置的数据以及列表中正确的变量。

最佳答案

nodeChecker 不是 null,但 nodeChecker.getData()null,也是 String 比较 is done incorrectly

关于java - 空指针异常但变量包含值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24114054/

相关文章:

java - 如何将 JSON 解析为 int?

java - 尝试用 Java 发送电子邮件时出现连接异常

java - 创建一个 Jar - 出现空白屏幕

Java PDFBox,从表的列中提取数据

java - OSGi 不启动选定的 bundle

java - 在Android中用java代码访问mysql

java - 字符串数组的索引

java - 与 Hibernate 额外列查询的多对多关系

java - 为什么 Java 的 scheduleWithFixedDelay 使用 Runnable 而不是 FutureTask<?> 包装 runnable?

java - 查找两个数组之间的差异