有没有一种方法可以组合多个java.io的FileFilter

    FileFilter wildcardFileFilter = new WildcardFileFilter("*.yml");
    FileFilter isFileFileFilter = FileFileFilter.FILE;

    File[] listFiles = dir.listFiles(???);

最佳答案

关于什么...

FileFilter combinedFilter = f -> wildcardFileFilter.accept(f) && isFileFileFilter.accept(f);


如果您希望它流利,请记住FileFilter本质上是Predicate<File>,它提供了一些组合内容的方法...

Predicate<File> wildcardFileFilter = new WildcardFileFilter("*.jml")::accept;
Predicate<File> isFileFileFilter = FileFileFilter.FILE::accept;

FileFilter combinedFilter = wildcardFileFilter.and(isFileFileFilter)::test;

08-06 17:04