NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE для toFile (). ListFiles () - PullRequest
0 голосов
/ 27 сентября 2019

Я получаю "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:[line 85] Известный нуль в TestService.java: [строка 85] NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE [ИНФО]

1 Ответ

1 голос
/ 27 сентября 2019

parentFolder.toFile () вернет объект File.Если этот файл не существует, то listFiles () выдаст ошибку. Поэтому перед проверкой listFiles вам необходимо проверить, существует ли файл.

...