java - If 语句中的空指针异常

标签 java exception if-statement nullpointerexception equals

希望你们能弄清楚为什么我可以提供空指针异常,该程序有几个类和方法,但这是破坏的那个。

public void search(Node node, String sData, int iData)
{
    if (sData.equals(node.getString()) && (iData == node.getInt()))
    {
        System.out.println("Nailed it");
    }else if (sData.compareTo(node.stringData) < 0)
    {
        search(node.left, sData, iData);
    }else if (sData.compareTo(node.stringData) > 0)
    {
        search(node.right, sData, iData);
    }

}

首先获取输入的节点是根,然后它通过递归从那里向左或向右移动,但表示其错误的行是顶部的 if 语句。无法弄清楚有什么问题 sData 在调用该方法时只是一个标准字符串输入,而 iData 也只是一个 int 那就是输入。无法弄清楚=/感谢您的帮助

最佳答案

您需要在方法顶部添加以下内容:

if (node == null) return;

如果您搜索结构中不存在的内容,这将确保该方法正常返回。否则,对于您现有的代码,当方法遇到叶节点时,您将遇到 NullPointerExceptions

关于java - If 语句中的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9088754/

相关文章:

java - 多态性和向下转型问题

java - 在类中实现接口(interface)

java - native 浏览器和 Android 应用程序之间是否可以交互?

python - 使用 while 或 if 作为递归条件会导致不同的结果

r - 如何用 1 和 0 覆盖 R 中的一列字符?

java - Java 中的 equals() 和 hashCode() 契约

C# HttpClient 在非成功状态代码上抛出异常

java - 如果对象不是 Java 中某物的实例,是否会抛出标准异常?

java - 未知 "NumberFormatting"问题

java - 如何在java中跳过打印 "if"