Java扩展文件名过滤器

Java扩展文件名过滤器,java,filtering,filenames,Java,Filtering,Filenames,我有一个方法,在调用FilenameFilter时将其传递给(作为匿名内部类)。现在,如果设置了一个变量,我想扩展FilenameFilter。例如: new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.toLowerCase().endsWith(".txt"); } } 应成为: new FilenameFilter(

我有一个方法,在调用
FilenameFilter
时将其传递给(作为匿名内部类)。现在,如果设置了一个变量,我想扩展
FilenameFilter
。例如:

new FilenameFilter() {

    @Override
    public boolean accept(File dir, String name) {
        return name.toLowerCase().endsWith(".txt");
    }
}
应成为:

new FilenameFilter() {

    @Override
    public boolean accept(File dir, String name) {
        return name.toLowerCase().endsWith(".txt") || new File(dir, name).isDirectory();
    }
}
如何从第一个筛选器获取筛选并添加目录检查?(我不想在调用该方法时使用目录实现
FilenameFilter
,因为可能根本不需要它)

基于公认答案的解决方案
filenameFilter
是传递给方法的实例:

new FilenameFilter() {

    @Override
    public boolean accept(File dir, String name) {
        return filenameFilter.accept(dir, name) || new File(dir, name).isDirectory();
    }
};

您应该扩展第一个过滤器:

class FilenameFilter1 implements FilenameFilter {
    @Override
    public boolean accept(File dir, String name) {
        return name.toLowerCase().endsWith(".txt");
    }
}

class FilenameFilter2 extends FilenameFilter1 {
    @Override
    public boolean accept(File dir, String name) {
        return super.accept(dir, name) && new File(dir, name).isDirectory();
    }
}

java.io.FilenameFilter
上有什么方法可以做到这一点吗?因此,用户实现了这个过滤器,我对其进行了扩展,并添加了自己的过滤器部件??示例中的FilenameFilter1实现了FilenameFilter