我有一個非常簡單的方法,它掃描目錄結構以執行檢查。掃描如下所示:掃描目錄時發生java.lang.NullPointerException
File file = new File(initpath);
for(File hex : file.listFiles(new HexagonNameFilter())) {
for(File wall : hex.listFiles()) {
for(File shelf : wall.listFiles()) {
for(File book : shelf.listFiles()) {
// Perform some actual work
}
}
}
}
該方法在執行程序期間被調用很多次。
不一致(意味着,在掃描過程中的某個不可預知的地方),我得到一個java.lang.NullPointerException,堆棧跟蹤指向for語句之一(它也是不一致的)。這不是很有啓發。我正在考慮將FilenameFilters傳遞給三個listFiles()調用,但無法看到這將如何幫助解決該問題。
壞消息:'listFiles'可能返回null:所以你需要一個'File []'變量和一個if語句。或者在你自己的函數中使用wrap listFiles。 – 2013-04-29 16:23:43
http://stackoverflow.com/questions/6077909/is-there-a-way-to-avoid-null-check-before-the-for-each-loop-iteration-starts – ykaganovich 2013-04-29 18:40:52