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