cevap
benim yorumum Genişleyen: boş olmayan file.listFiles()
getiri biri çağırma sonrakini anlamına gelmez çünkü
mutlaka yapacağız. Genelde, aynı değeri döndürmek için aynı yöntemin (aynı nesne üzerinde, aynı argüman ile) iki çağrısına güvenemezsiniz ve bir referans türü değeri döndüren herhangi bir yöntem, ilke olarak, null
'u döndürebilir. Yansıma üzerinde, aynı yöntemin farklı davetleri için genellikle farklı sonuçlar aldığınızı fark edeceksiniz. file.listFiles().length
bu nedenle her zaman bir NPE riskidir. Sonar'ın File
sınıfına dair belirli bir bilgiye sahip olmasını (hatta makul görünmediği) bilseniz bile, bileşik bir koşullu ifadenizin bir NPE ataması için gerçekten mümkündür. Tüm yapılması gereken, başvurulan dosyanın file.listFiles()
değerlendirmesi ve file.listFiles().length
değerlendirmesi arasında kaldırılmasıdır.
Böyle bu özel sorunu düzeltmek olabilir: @zapi söylediği gibi file
modifiye ve diğer parçacıkları tarafından erişilebilir olması durumunda, Tabii
File[] files;
if (file == null || (files = file.listFiles()) == null || files.length == 0) { /* ... */ }
ardından hemen hemen tüm biter.
- 1. if()</ dev/null
- 2. Ant (1.6.5) - Bir <condition> veya <if>
- 3. Boş bir dizenin JavaScript'deki boş bir dizeye eşit olmadığı zamanlar var mı? <code>'' === '' ? null : ('' === '*' ? '*' : ('').split(','));</code></p> <p>hiç <code>'' === ''</code> doğru değil olduğu bir zaman var mı:
- 4. Git, <<<<<<< HEAD dosyasına
- 5. <a1> Text</ a1> temizleniyor null
- 6. ActivityUnitTestCase getActionBar() <code>onCreate()</code> null
- 7. Bu kod neden bir NullPointerException vermiyor? kod snippet'idir bir NullPointerException atmak değil</em></strong><strong><em>neden yaptığını isterim
- 8. Java, bitshifts kullanırken, neden 1 << 32! = 1 << 31 << 1?
- 9. getAccountsByType bana hesaplarının bir listesini veriyor mu</p> <pre><code>AccountManager.newChooseAccountIntent(null, null, new String[] {"com.google"}, null, null, null, null); </code></pre> <p>kullanarak ...</p> <p>
- 10. İçindeki eleman sayısı <5 in <a1 <0</ a1><T>
- 11. Android: Ben yöntem <code>getExternalFilesDir(null)</code> aradığında getExternalFilesDir (null)
- 12. Bir <macrodef> karıncada <copy> nasıl?
- 13. <section>, <nav> ve <article>
- 14. Returnsasync (null) I (<code>Moq</code> ile birlikte), Visual Studio C# birim test yönteminde <code>ReturnsAsync(null)</code> kullandığınızda
- 15. JsonConvert.DeserializeObject <T> dönüş null
- 16. <script><!--//--></script> Modern bir amacı var mı?
- 17. Bir <code>LinearLayoutManager</code> ile <code>RecyclerView</code> var
- 18. Akış çıkışında <yerine <neden hala <çoğum?
- 19. timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, bir makinede boş olabilir, başka değil? benim yerel makinede</p> <pre><code>`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP </code></pre> <p>, ben çalıştırabilirsiniz:
- 20. Null bir <T> uzantı yöntemi oluşturma, nasıl yapıyorsunuz?
- 21. cmake -D <var>: <type> = <value>: <type> ne olabilir?
- 22. Scala'daki>: Null <: ifadesinin anlamı nedir?
- 23. Thymeleaf'ın JSP etiketleri gibi bir şeyleri var mı?</p> <p><strong><em>ChildPage.jsp</em></strong>:
- 24. <span> içinde <span> var mı?
- 25. HttpContext.GetOwinContext() GetUserManager <AppRoleManager>() dönüş null
- 26. Neden "cout << '\\\\';” ifadesi başarısız değil?
- 27. Şu izle ifadem tutan bana gösteriyor Şu anda bir</p> <pre><code>Expression<Func<T,bool>> </code></pre> <p>bir</p> <pre><code>Expression<Func<T,object>> </code></pre> <p>dönüştürmek çalışıyorum
- 28. Jenkins Sonar hatası JUnit version null
- 29. Kimlik DoğrulamaHeaderValue için neden gerekli?</p> <pre><code>httpClient .DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(null, "abc"); </code></pre> <p>... ama istisna alıyorum:
- 30. "<%:" ne yapıyor?</p> <pre><code><%: Model.FirstName %> </code></pre> <p>"<%:" Ne vermez: do
Sadece bir dosya ismi "file_name" döndürmez, bir sonraki adın mutlaka yapacağı anlamına gelmez. 'file.listFiles().' bu nedenle her zaman bir NPE riskidir. –
Belki de "NullPointerException" oluşur * içinde * listFiles() 'için çağrı? Veya 'listFiles()', ilk başta boş olmayan bir şey döndürür, ancak ikinci çağrıda 'null' değerini döndürür? – Waggili
"listFiles()" değişiminin sonucunun yanı sıra: Diğer dosyalara (dosya: IOW: bir alan mı yoksa yerel değişken mi)? İlk çağrıdan sonra 'null' olarak ayarlayabilirler. – zapl