2010-06-09 18 views
8

Hi Ich möchte Unterschiede zwischen den oben genannten Vergleiche wissen?Unterschied zwischen Null == Objekt und Objekt == null

Ich bekomme Null Zeiger Ausnahme, wenn ich object.getItems() == null überprüfen. Aber wenn ich es zu null == object.getItems() ändern, funktioniert es gut.

Ich habe in diesem what is the difference between null != object and object!=null suchen Aber ich bekam keine zufriedenstellende Antwort.

+11

Nein, diese Änderung wird sich nicht ändern, wenn eine NPE ausgelöst wird oder nicht. Überprüfen Sie Ihre Annahmen erneut, da diese beiden Ausdrücke äquivalent sind. –

+0

Ich bekomme NPE in beide Richtungen. Was genau ist Null, wenn du es versuchst, Objekt? –

+0

Bitte posten Sie die komplette Java-Anweisung, vielleicht ist das Problem nur eine fehlplatzierte/fehlende Klammer. –

Antwort

13

(ähnliche Frage: Which is more effective: if (null == variable) or if (variable == null)?)

Unterschied zwischen null == Objekt und Objekt == null

Es gibt keinen semantischen Unterschied.

object.getItems() == null und null == object.getItems() sind gleichwertig.

Vielleicht sind Sie es mit der Tatsache, dass das Mischen

nonNullObj.equals(obj) 

und

obj.equals(nonNullObj) 

einen Unterschied machen kann (da die zweite Alternative der Angerufene null in einem NPE in Fall führen könnte, ist).

+0

Was ist der Grund für das zweite Expressoin NPE – Pedantic

+0

@Rozer, wenn obj null ist, dann würde der Aufruf der eqals-Methode zu einer NPE führen. – aioobe

Verwandte Themen