2010-06-09 21 views
8

Hola me gustaría saber la diferencia entre las comparaciones anteriores?Diferencia entre null == objeto y objeto == nulo

obtengo una excepción de puntero nulo cuando consulto object.getItems() == null. Pero si lo cambio a null == object.getItems(), funciona bien.

Lo miré en este what is the difference between null != object and object!=null Pero no obtuve una respuesta satisfactoria.

+11

No, ese cambio no cambiará si se lanza un NPE o no. Vuelva a verificar sus suposiciones, porque esas dos expresiones son equivalentes. –

+0

Obtengo NPE en ambos sentidos. ¿Qué es exactamente nulo cuando lo intentas, objeto? –

+0

Por favor, publique la declaración completa de Java, tal vez el problema es simplemente un paréntesis extraviada/faltante. –

Respuesta

13

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

Diferencia entre nula == objeto y el objeto == null

No hay ninguna diferencia semántica.

object.getItems() == null y null == object.getItems() son equivalentes.

quizás usted es mezclarse con el hecho de que

nonNullObj.equals(obj) 

y

obj.equals(nonNullObj) 

puede hacer una diferencia (ya que la segunda alternativa podría resultar en una NPE en caso de que el destinatario de la llamada es nulo)

+0

cuál es la razón del segundo expressoin NPE – Pedantic

+0

@Rozer, si obj es nulo, entonces la llamada al método .equals resultaría en un NPE. – aioobe

Cuestiones relacionadas