2012-03-23 18 views
8

kimse bana açıklayabilir:FindBugs neden boş çekimi görmezden geliyor? Bu bir findbug uyarı atıyor neden

if (m != null && m.getModifiedDate() != null) 
    content.put("ModifiedDate", m.getModifiedDate().getTime()); 

ve bu çalışıyor:

if(m != null){ 
    Date date = m.getModifiedDate(); 
    if (date != null) 
     content.put("ModifiedDate", date .getTime()); 
} 

Uyarı: denilen yöntemin değerini döndürmek nedeniyle Olası boş işaretçi dereference.

FindBug'lara Örnek 1 numaralı bir uyarı olmaması gerektiğini bildirmek mümkün mü?

+0

hangi uyarı ??? – UmNyobe

+0

Uyarı nedir? – montardon

+0

Üzgünüm yapıştırmak unuttum .. düzenlenmiş – soulcinder

cevap

15

Muhtemelen, m.getModifiedDate() ilk aramada boş olmayan bir değer döndürdüğü için olabilir, ancak ikinci sırada boş değer olabilir?

+0

oh Tamam! Peki, Findbugs'a, kontrolün yeterli olup olmadığını anlamak için bir yöntem var mı? – soulcinder

+0

İlk durumda null veya null olmayan öğelerin, 2. durumda değil, nasıl bir uyarıya yol açtığını söyler misiniz? –

+1

@ChandraSekhar: İkinci durumda, yalnızca bir kez getModifiedDate() 'yi çağırıyoruz -" date "değeri, sıfırlama kontrolünden sonra null olarak değişmeyecek ... –

İlgili konular