Search code examples
javafilestreamlast-modified

Java 1.8 compilation error for lastmodified


File lastModified = Arrays.stream(files)
    .filter(File::isDirectory)
    .max(Comparator.comparing(File::lastModified))
    .orElse(null)

Can the above code changed to be compatible for 1.7?


Solution

  • Provided files instanceof File[], it should be smth like that:

    private static File getFileLastModified(File[] files) {
        File fileLastModified = null;
        long maxLastModified = Long.MIN_VALUE;
        for (File file : files) {
            if (file.isDirectory()) {
                final long lastModified = file.lastModified();
                if (lastModified > maxLastModified) {
                    fileLastModified = file;
                    maxLastModified = lastModified;
                }
            }
        }
        return fileLastModified;
    }
    

    In short, it tries to find the last modified file.