2015-04-17 83 views
0

我從服務器獲取一些數據並在getter和setter類中設置值。當值似乎是空我得到我的getter setter方法類android NullPointerException檢查空值

Tag [seatNo=null, Value=null, player1=null, player2=null, player3=null, player4=null, player5=null ] 

上述值是被印在logcat的

獲得上述數值繼值我檢查的,如果條件,因爲其中的應用程序崩潰

if (bet.getSeatNo() != null || !bet.getSeatNo().isEmpty() || !bet.getSeatNo().equals("null")) 
{ 

} 

如何檢查它爲空或不是?

+1

'if(!TextUtils.isEmpty(bet.getSeatNo()))' –

+0

您能否請您發佈錯誤堆棧跟蹤 – Abhishek

+0

您正在獲得NPE,因爲您的'bet'對象爲null。 你在這裏試圖做的是,檢索一個空對象上的值,導致NPE – Abhishek

回答

1

首先您需要檢查該值是否爲空。

if(!TextUtils.isEmpty(bet.getSeatNo())){ 
//Check your condition here 
} 
0

在檢查字段爲空/空之前,檢查「下注」對象是否爲空。 訪問空對象的字段時發生NullPointerException。

1

嘗試這樣做是這樣的:

if (bet.getSeatNo() != null) 
    { 
     if(!bet.getSeatNo().isEmpty() && !bet.getSeatNo().equals("null")) 
     { 

     } 
    } 
0
if (bet.getSeatNo() != null || !bet.getSeatNo().isEmpty() || !bet.getSeatNo().equals("null")) 

如果bet.getSeatNo() != nullfalse,才把第二!bet.getSeatNo().isEmpty()進行評估。但由於第一個僅評估爲false,如果getSeatNo()返回null,第二個條件必須是NPE。注意這個問題?

使用&&而不是||,以便短路停止在第一個false而不是第一個true