2010-06-09 19 views
8

Merhaba Yukarıdaki karşılaştırmalar arasındaki farkı bilmek ister misiniz?Arasındaki fark null == object ve object == null

object.getItems() == null'u işaretlerken boş gösterici istisnası alıyorum. Ancak, null == object.getItems() olarak değiştirirseniz, iyi çalışır.

Bu what is the difference between null != object and object!=null 'a baktım ama tatmin edici bir yanıt almadım.

+11

Hayır, bir NPE atılıp atılmadığında bu değişiklik değişmeyecektir. Varsayımlarınızı yeniden kontrol edin, çünkü bu iki ifade eşdeğerdir. –

+0

NPE'yi her iki şekilde de alıyorum. Denediğinizde null tam olarak nedir, nesne? –

+0

Lütfen eksiksiz bir Java bildirimini gönderin, belki sorun sadece yanlış yerleştirilmiş/eksik bir ayraçtır. –

cevap

13

: boş arasına (Benzer soru Which is more effective: if (null == variable) or if (variable == null)?)

Fark == nesne ve nesne == null

hiçbir anlamsal bir fark yoktur.

object.getItems() == null ve null == object.getItems() eşdeğerdir.

Belki

nonNullObj.equals(obj) 

ve

obj.equals(nonNullObj) 

ikinci alternatif durumunda bir NPE neden olabilir çünkü Aranan null (bir fark yaratabilir gerçeği ile daha farklılaştırmayı ediyoruz).

+0

NPE – Pedantic

+0

@Rozer'ın ikinci ifade etmesinin nedeni nedir, eğer null ise, o zaman .equals yöntem çağrısı bir NPE ile sonuçlanır. – aioobe