条件空检查的Java NullPointerException

时间:2014-03-18 15:53:47

标签: java nullpointerexception

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

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

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

    if(right.element != null)

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

编辑:

修复了我的代码,在尝试获取正确的元素

之前,只需检查自己是否为null
public boolean hasRight(){
    if(right != null){
        return true;
    }else{
        return false;
    }
}

3 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:5)

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

btw:您的方法可以更容易编写为

hasRight(){
   return right != null;
}

答案 2 :(得分:3)

如果您获得NullPointerException,则right应为null。所以你可以这样做:

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