Java 7 中的文件 Lambda 表达式

File Lambda expression in Java 7

下面的代码在 Java 8.

中工作正常
files.addAll(Arrays.asList(folder.listFiles((f) -> f.getName()
                .endsWith(CustomConstantsRepository.FILE_EXT_DAT)
                && f.getName().startsWith(fileName))));

我需要相同的功能才能在 Java 7.

中工作

提前致谢。

您可以使用 Anonymous Inner Class,因为 Java 8 lambda 表达式本质上是语法糖,它们的功能几乎相同。看起来像这样。

files.addAll(Arrays.asList(folder.listFiles(new FileFilter(){

        @Override
        public boolean accept(File f) {
            return f.getName().endsWith(CustomConstantsRepository.FILE_EXT_DAT) && f.getName().startsWith(fileName)));
        }

})));