我得到以下代码的“ NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE”。我尝试了几种选择,但仍然遇到类似的问题。 它在下面的行
parentFolder.toFile().listFiles()
if(files !=null && files.length>0)
完整代码如下:
final String dir = filePath.substring(0, filePath.lastIndexOf(PATH_SEPARATOR));
final String logFile = filePath.substring(filePath.lastIndexOf(PATH_SEPARATOR) + 1);
final Path parentFolder = Paths.get(dir);
final File[] files = parentFolder.toFile().listFiles();
if (files !=null && files.length>0) {
final Optional<File> mostRecentFileOrFolder = Stream.of(files)
.filter(f -> f.getName().startsWith(logFile))
.max(Comparator.comparingLong(File::lastModified));
if (mostRecentFileOrFolder.isPresent()) {
final File mostRecent = mostRecentFileOrFolder.get();
log.info("Picked up most recent file from path {}", mostRecent.getAbsolutePath());
}
}
更新:完整日志:
[INFO]由于调用方法[com.sourav.TestService,com.sourav.TestService]的返回值,可能在com.sourav.TestService.setValidFilePath()中取消空指针的引用:在TestService.java中调用的方法:[第85行] ]在TestService.java中为null:[第85行] NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE [INFO]
答案 0 :(得分:1)
parentFolder.toFile()将返回一个文件对象。如果此文件不存在,则listFiles()将引发错误。因此,在查找listFiles之前,需要检查该文件是否存在。