gpt4 book ai didi

Java 扩展 FilenameFilter

转载 作者:行者123 更新时间:2023-11-30 06:23:28 24 4
gpt4 key购买 nike

我有一个方法,在调用时将 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 扩展 FilenameFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47673337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com