[英]Java NullPointerException on conditional null check
我有一個非常基本的方法作為二叉搜索樹的一部分,如果當前二進制節點有一個正確的子節點,它只返回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;
}
}
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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.