2010-06-09 20 views
8

Witam Chciałbym poznać różnice między powyższymi porównaniami?Różnica między wartością zerową == obiekt i obiekt == null

Otrzymuję zerowy wskaźnik wskaźnika, gdy sprawdzam object.getItems() == null. Ale jeśli zmienię to na null == object.getItems(), to działa dobrze.

Spojrzałem na to what is the difference between null != object and object!=null Ale nie dostałem satysfakcjonującej odpowiedzi.

+11

Nie, ta zmiana nie ulegnie zmianie, jeśli zgłoszenie NPE zostanie odrzucone. Sprawdź ponownie swoje założenia, ponieważ te dwa wyrażenia są równoważne. –

+0

Dostaję NPE w obie strony. Co dokładnie jest puste, gdy go wypróbujesz, obiekt? –

+0

Proszę napisać pełną instrukcję Java, może problem jest po prostu niesłusznym/brakującym nawiasem. –

Odpowiedz

13

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

Różnica między zerową == obiekt i przedmiot == null

Nie ma semantyczne różnica.

object.getItems() == null i null == object.getItems() są równoważne.

Może jesteś mieszanie go z faktem, że

nonNullObj.equals(obj) 

i

obj.equals(nonNullObj) 

może zrobić różnicę (ponieważ druga alternatywa, może doprowadzić do NPE w przypadku, gdy wywoływany jest null).

+0

co jest powodem drugiej ekspresji NPE – Pedantic

+0

@Rozer, jeśli obiekt jest null, wówczas wywołanie metody .equals spowodowałoby NPE. – aioobe

Powiązane problemy