У меня есть очень простой метод, который сканирует структуру каталогов для выполнения проверки. Сканирование выглядит следующим образом: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 в вашей собственной функции. –
http://stackoverflow.com/questions/6077909/is-there-a-way-to-avoid-null-check-before-the-for-each-loop-iteration-starts – ykaganovich