2009-06-15 107 views
9

我想驗證一個對象是否爲空或不是,我使用的語法如下:比較對象爲空!

void renderSearch(Customer c){ 
     System.out.println("search customer rendering>..."); 
     try { 
      if(!c.equals(null)){    
       System.out.println("search customer found..."); 
      }else{    
       System.out.println("search customer not found..."); 
      } 
     } catch (Exception e) { 
      System.err.println ("search customer rendering error: " 
            + e.getMessage()+"-"+e.getClass()); 
     } 
    } 

我得到以下異常:

search customer rendering error: null class java.lang.NullPointerException

我認爲我正在考慮這種可能性有我的if和else循環。任何幫助,將不勝感激。

+1

加。 if和else不稱爲循環。其條件 – Midhat 2009-06-15 04:00:25

回答

21

嘗試!C您的if語句= NULL。你並沒有比較對象本身,你正在比較它們的引用。

10

使用c == null,因爲你比較引用,而不是對象。

8

用C == NULL

equals方法(通常)期望類型的客戶的參數,並且可以被調用對象的一些方法。如果該對象爲空,您將得到NullPointerException。

c也可能是無效和c.equals通話可能被拋無論通過

+0

比別人 – Gattsu 2016-12-13 09:50:53

11
!c.equals(null) 

該行是調用C上的equals方法的對象的異常,如果c爲null,那麼你就得到該錯誤,因爲你無法調用null上的任何方法。 相反,你應該使用

c != null 
3

最有可能的對象C在這種情況下空。

您可能要覆蓋的情況下,你需要以不同的方式表現它等於客戶的默認實現。

同時確保傳遞的對象不是調用它的功能之前空。

-2

如果有null值,則下面來比較空值聲明C對象:

if (c.toString() == null) { 

    System.out.println("hello execute statement"); 

} 
+2

都能跟得上更加清晰。 `C`本身爲空,那麼你會得到一個NullPointerException。 – user1071777 2014-11-12 18:23:25