簡體   English   中英

條件空檢查的Java NullPointerException

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM