返回未隐藏的文件

时间:2018-08-08 15:08:38

标签: java java-8

在Java 8之前,此方法将用于创建隐藏文件列表:

    File[] hiddenFiles = new File("./directory/").listFiles(new FileFilter() {
        public boolean accept(File file) {
            return file.isHidden();
        }
    });

在Java 8中,可以将其简化为:

File[] hiddenFiles = new File("./directory/").listFiles(File::isHidden);

返回原始代码中的非隐藏文件是一个微不足道的更改:return file.!isHidden();替代了return file.isHidden();。我无法在一行中重新创建此功能。

File类中没有isNotHidden函数。无需创建一个(或不遵循原始的,更冗长的代码),是否可以使用新的单行样式重新创建它?

2 个答案:

答案 0 :(得分:3)

怎么样,

File[] hiddenFiles = new File("c:/data").listFiles(f -> !f.isHidden());

答案 1 :(得分:3)

使用Java-11 Predicate.not,直到那时您都无法通过方法引用

Predicate.not(File::isHidden)