当我使用null进行==比较时获取NullPointerException

时间:2014-11-09 03:55:16

标签: java nullpointerexception

我在使用当前的程序时遇到了困难。当我尝试检查节点(一个对象)是否为null时,我得到一个NullPointerException,我虽然你被允许这样做。我在这个if语句中得到了异常

        else if(direction == 0) {
            cursor = cursor.getParent();
            if(cursor.getRight() != null)
                direction = 1;
            else
                direction = 0;
        }

我在第三行'if(cursor.getRight()!= null)'上得到了异常,我尝试了多种方法来编写它并仍然得到相同的异常。 ('if(null!= cursor.getRight)'和'if(!(null == cursor.getRight())' getRight()方法返回下一个节点(对象)的实例,并在初始化该对象时初始化为null。

4 个答案:

答案 0 :(得分:1)

我想你可能会发现" cursor.getParent()"返回null,从而设置" cursor"在第二行上为null。然后,当第三行尝试调用" getRight()"在null对象上,您会收到NullPointerException。

答案 1 :(得分:1)

else if(direction == 0) {
            cursor = cursor.getParent();
            if(cursor.getRight() != null)
                direction = 1;
            else
                direction = 0;
        }

获得NullPointerException的原因是因为cursor设置为null,因此当您尝试cursor.getRight()时,它会评估为null.getRight()因此异常

我建议您尝试以下代码:

else if(direction == 0) {
            cursor = cursor.getParent();
            if(cursor!=null && cursor.getRight() != null)
                direction = 1;
            else
                direction = 0;
        }

答案 2 :(得分:0)

可能在第二行getParent上将Cursor设置为null,然后您尝试访问null元素的方法。在检查cursor.getRight()是否为null之前,首先检查以确保游标不为null。

答案 3 :(得分:0)

else if(direction == 0) {
    cursor = cursor.getParent();
    if(cursor != null && cursor.getRight() != null)
        direction = 1;
    else
        direction = 0;
}