java – 有没有更好的方式来做多个ext的文件过滤器?

前端之家收集整理的这篇文章主要介绍了java – 有没有更好的方式来做多个ext的文件过滤器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
File files[] = rootDir.listFiles(new FileFilter() {
    public boolean accept(File file) {
        if (file.isDirectory())
            return true;

    String name = file.getName().toLowerCase();

    if (name.endsWith(".zip") || name.endsWith(".jar")
     || name.endsWith(".z") || name.endsWith(".gz")
     || name.endsWith(".tar") || name.endsWith(".bz2")
     || name.endsWith(".bz"))
        return true;

    return false;
    }
});

你可以看到,代码是脏的“||”

你知道如何使它更好吗?

解决方法

使用Java 6或更高版本,这对于 FileNameExtensionFilter来说是一个完美的例子,除了它扩展javax.swing.filechooser.FileFilter而不是实现java.io.FileFilter.
但是为它写一个包装是微不足道的:
File[] files = rootDir.listFiles(new FileFilter() {
    private final FileNameExtensionFilter filter =
        new FileNameExtensionFilter("Compressed files","zip","jar","z","gz","tar","bz2","bz");
    public boolean accept(File file) {
        return filter.accept(file);
    }
});
原文链接:https://www.f2er.com/java/126352.html

猜你在找的Java相关文章