2010-06-09 23 views
8

Ciao Mi piacerebbe conoscere la differenza tra i confronti di cui sopra?Differenza tra null == oggetto e oggetto == null

Ricevo un'eccezione di puntatore nullo quando controllo lo object.getItems() == null. Ma se lo cambio a null == object.getItems(), funziona perfettamente.

Ho dato un'occhiata a questo what is the difference between null != object and object!=null Ma non ho avuto risposta soddisfacente.

+11

No, questa modifica non cambierà se viene lanciato un NPE. Ricontrolla le tue ipotesi, perché quelle due espressioni sono equivalenti. –

+0

Ottengo NPE in entrambe le direzioni. Che cosa è esattamente nullo quando lo provi, oggetto? –

+0

Si prega di inviare la dichiarazione completa di Java, forse il problema è solo una parentesi mancante/errata. –

risposta

13

(interrogazione: Which is more effective: if (null == variable) or if (variable == null)?)

differenza tra nullo == oggetto e oggetto == null

Non c'è differenza semantica.

object.getItems() == null e null == object.getItems() sono equivalenti.

Forse stai mescolandolo con il fatto che

nonNullObj.equals(obj) 

e

obj.equals(nonNullObj) 

può fare la differenza (dal momento che la seconda alternativa potrebbe tradursi in una NPE nel caso in cui il chiamato è nullo).

+0

qual è la ragione per la seconda expressoin NPE – Pedantic

+0

@Rozer, se obj è nullo, la chiamata al metodo .equals risulterebbe in un NPE. – aioobe

Problemi correlati