【发布时间】:2013-04-23 09:43:17
【问题描述】:
我有一个非常简单的方法可以扫描目录结构来执行检查。扫描如下:
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。
标签: java io nullpointerexception