Java NullPointerException对条件空值检查

作为二叉搜索树的一部分,我有一个非常基本的方法,如果当前的二进制节点有正确的子节点,则返回True,如果右子节点为空,则返回False。

public boolean hasRight(){
    if(right.element != null){
        return true;
    }else{
        return false;
    }

然而每当我测试这段代码时,我知道我会到达一个没有正确子节点的节点,并希望我的代码只返回False,java会在该行抛出NullPointerException

    if(right.element != null)

而不是像我期望的那样返回False。

编辑:

修正了我的代码,只是在尝试获取正确的元素之前,必须检查它自己是否为空

public boolean hasRight(){
    if(right != null){
        return true;
    }else{
        return false;
    }
}

然后right本身就是null 。 在尝试访问它之前先检查它。

if (right != null && right.element != null){

如果right为null,则不能访问right.element()

顺便说一句:你的方法可以写得更简单

hasRight(){
   return right != null;
}

如果你得到一个NullPointerException ,那么right应该是null 。 所以你可以这样做:

if(right != null && right.element != null){
    return true;
}else{
    return false;
}
链接地址: http://www.djcxy.com/p/76055.html

上一篇: Java NullPointerException on conditional null check

下一篇: Comparing two strings with boolean?