【问题标题】:NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE on toFile().listFiles()toFile().listFiles() 上的 NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE
【发布时间】:2019-09-27 04:10:11
【问题描述】:

我得到以下代码的“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.setValidFilePath() 中可能的空指针取消引用,因为调用方法的返回值 [com.sourav.TestService, com.sourav.TestService] 在 TestService.java 调用的方法:[第 85 行]TestService.java 中的已知空值:[第 85 行] NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE [信息]

【问题讨论】:

  • 您能否发布错误的完整堆栈跟踪。
  • 在描述中更新
  • 第 85 行是我上面指出的同一行
  • 你能检查一下 parentFolder.toFile().exists() 的值吗?
  • 在执行listFiles() 之前,“FindBugs”可能会要求您检查 null 的“parentFolder.toFile()”的返回值。

标签: java file java-8 findbugs


【解决方案1】:

parentFolder.toFile() 将返回一个文件对象。如果这个文件不存在,那么listFiles()会报错,所以在去listFiles之前需要检查文件是否存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 2021-07-07
    • 2016-03-13
    相关资源
    最近更新 更多