在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
函数。无需创建一个(或不遵循原始的,更冗长的代码),是否可以使用新的单行样式重新创建它?
答案 0 :(得分:3)
怎么样,
File[] hiddenFiles = new File("c:/data").listFiles(f -> !f.isHidden());
答案 1 :(得分:3)
使用Java-11 Predicate.not
,直到那时您都无法通过方法引用
Predicate.not(File::isHidden)