2009-06-15 14 views
9

Sto cercando di verificare se un oggetto è null o non e sto usando questa sintassi:confronta un oggetto con null!

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()); 
     } 
    } 

ottengo la seguente eccezione:

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

ho pensato che mi stava prendendo in considerazione questa possibilità con il mio ciclo if e else. Qualsiasi aiuto sarebbe apprezzato.

+1

più. se e else non viene chiamato loop. è una condizione – Midhat

risposta

21

Prova c! = Null nella tua istruzione if. Non stai confrontando gli oggetti da soli, stai confrontando i loro riferimenti.

10

Utilizzare c == null, dal momento che si stanno confrontando riferimenti, non oggetti.

8

Usare c == null

Il metodo è uguale (di solito) aspetta un argomento di tipo cliente, e può essere chiamata alcuni metodi sull'oggetto. Se quell'oggetto è nullo, otterrai NullPointerException.

Anche C potrebbe essere nullo e c.equals chiamata potrebbe essere gettando eccezione indipendentemente dall'oggetto passato

+0

più chiara di altre – Gattsu

11
!c.equals(null) 

Quella linea sta chiamando il metodo equals su C, e se c è nullo? Allora ti ottieni questo errore perché non puoi chiamare nessun metodo su null. Invece si dovrebbe usare

c != null 
3

Molto probabilmente oggetto c è nullo in questo caso.

È possibile sovrascrivere l'implementazione predefinita di uguale a Cliente nel caso in cui sia necessario comportarsi diversamente.

Assicurarsi inoltre che l'oggetto passato non sia null prima di richiamare le funzioni su di esso.

-2

se C oggetto avente valore nullo quindi seguente istruzione utilizzata per confrontare il valore nullo:

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

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

} 
+2

No. 'c' è nullo, quindi otterrai una NullPointerException. – user1071777

Problemi correlati