Java NullPointerException on conditional null check
作为二进制搜索树的一部分,我有一个非常基本的方法,如果当前的二进制节点有一个正确的子节点,它只返回true;如果正确的子节点指向空,它返回false。
1 2 3 4 5 6 | public boolean hasRight(){ if(right.element != null){ return true; }else{ return false; } |
然而,每当我测试这个代码时,当我知道我将到达一个没有正确的子节点的节点,并且期望我的代码返回false时,Java就抛出了一个Null PoExtExchange异常。
1 | if(right.element != null) |
而不是像我期望的那样返回错误。
编辑:
修正了我的代码,只需在尝试获取right元素之前检查right本身是否为空。
1 2 3 4 5 6 7 | public boolean hasRight(){ if(right != null){ return true; }else{ return false; } } |
然后,它是
1 | if (right != null && right.element != null){ |
如果您无法访问
的BTW:你可以更容易的方法。
1 2 3 | hasRight(){ return right != null; } |
如果你找到一
1 2 3 4 5 | if(right != null && right.element != null){ return true; }else{ return false; } |