2010-06-09 7 views
8

Salut, je voudrais savoir diff entre les comparaisons ci-dessus?Différence entre null == objet et objet == null

Je reçois une exception de pointeur null lorsque je vérifie object.getItems() == null. Mais si je le change en null == object.getItems(), ça marche très bien.

Je l'ai regardé dans ce what is the difference between null != object and object!=null Mais je n'ai pas obtenu de réponse satisfaisante.

+11

Non, ce changement ne changera pas si un NPE est lancé ou non. Revérifiez vos hypothèses, car ces deux expressions sont équivalentes. –

+0

Je reçois NPE dans les deux sens. Quel est exactement nul quand vous l'essayez, objet? –

+0

S'il vous plaît poster l'instruction Java complète, peut-être que le problème est juste un crochet mal placé/manquant. –

Répondre

13

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

Différence entre null == objet et objet == null

Il n'y a pas de différence sémantiquement.

object.getItems() == null et null == object.getItems() sont équivalents.

Peut-être vous le mélanger avec le fait que

nonNullObj.equals(obj) 

et

obj.equals(nonNullObj) 

peut faire une différence (depuis la deuxième alternative pourrait entraîner une NPE dans le cas où est nul le callee).

+0

quelle est la raison de la seconde expression expresse NPE – Pedantic

+0

@Rozer, si obj est nul, alors l'appel de la méthode .equals aboutirait à un NPE. – aioobe

Questions connexes