我在使用当前程序时遇到困难。当我尝试检查节点(对象)是否为空时,我收到了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。

最佳答案

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

关于java - 当我与null进行==比较时获取NullPointerException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26824827/

10-09 03:06