Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
条件空检查上的Java NullPointerException_Java_Nullpointerexception - Fatal编程技术网

条件空检查上的Java NullPointerException

条件空检查上的Java NullPointerException,java,nullpointerexception,Java,Nullpointerexception,我有一个非常基本的方法作为二元搜索树的一部分,如果当前二元节点有一个正确的子节点,它只返回True;如果该正确的子节点指向null,则返回False public boolean hasRight(){ if(right.element != null){ return true; }else{ return false; } 然而,每当我测试这段代码时,当我知道我将到达一个没有正确子节点的节点,并且希望我的代码只返回False时,jav

我有一个非常基本的方法作为二元搜索树的一部分,如果当前二元节点有一个正确的子节点,它只返回True;如果该正确的子节点指向null,则返回False

public boolean hasRight(){
    if(right.element != null){
        return true;
    }else{
        return false;
    }
然而,每当我测试这段代码时,当我知道我将到达一个没有正确子节点的节点,并且希望我的代码只返回False时,java就会在该行抛出一个NullPointerException

    if(right.element != null)
而不是像我期望的那样返回False

编辑:

修正了我的代码,在尝试获取right元素之前,只需检查right本身是否为null

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

然后,
right
本身就是
null
。在尝试访问其上的某些内容之前,请先检查它

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

如果
right
为空,则无法访问
right.element()

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

hasRight(){
   return right != null;
}

如果您得到的是
NullPointerException
,则
right
应该是
null
。所以你可以这样做:

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

如果(right==null){…}执行
操作时,它会显示什么?是的!完全没有意识到。谢谢