首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何区分Groovy中的FileFilter和FilenameFilter?

如何区分Groovy中的FileFilter和FilenameFilter?
EN

Stack Overflow用户
提问于 2017-01-18 10:07:23
回答 2查看 3.4K关注 0票数 3

我想列出某些类型的文件,并写道:

代码语言:javascript
复制
File[] imageFiles = srcDir.listFiles({ File file ->
            file().name.endsWith("Artboard1ldpi.png") ||
            file().name.endsWith("Artboard1mdpi.png") ||
            file().name.endsWith("Artboard1hdpi.png") ||
            file().name.endsWith("Artboard1xhdpi.png") ||
            file().name.endsWith("Artboard1xxhdpi.png") ||
            file().name.endsWith("Artboard1xxxhdpi.png")
        })

不幸的是,我得到了以下错误:

代码语言:javascript
复制
> Ambiguous method overloading for method java.io.File#listFiles.
Cannot resolve which method to invoke for [class CLOSURENAME] due to overlapping prototypes between:
    [interface java.io.FileFilter]
    [interface java.io.FilenameFilter]

如何提示Groovy,选择什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-18 10:09:08

代码语言:javascript
复制
File[] imageFiles = srcDir.listFiles({ File file ->
    file.name.endsWith("Artboard1ldpi.png") ||
    file.name.endsWith("Artboard1mdpi.png") ||
    file.name.endsWith("Artboard1hdpi.png") ||
    file.name.endsWith("Artboard1xhdpi.png") ||
    file.name.endsWith("Artboard1xxhdpi.png") ||
    file.name.endsWith("Artboard1xxxhdpi.png")
} as FileFilter)
票数 11
EN

Stack Overflow用户

发布于 2017-01-18 10:46:10

这也应该有效,干燥;)

代码语言:javascript
复制
File[] imageFiles = srcDir.listFiles({ File file ->
   [
      "Artboard1ldpi.png",
      "Artboard1ldpi.png",
      "Artboard1mdpi.png",
      "Artboard1hdpi.png",
      "Artboard1xhdpi.png",
      "Artboard1xxhdpi.png",
      "Artboard1xxxhdpi.png",
   ].any { file.name.endsWith(it) }
} as FileFilter)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41716479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档