在Groovy中如何区分FileFilter和FilenameFilter?

在Groovy中如何区分FileFilter和FilenameFilter?,groovy,lambda,Groovy,Lambda,我想列出某些类型的文件并编写: File[] imageFiles = srcDir.listFiles({ File file -> file().name.endsWith("Artboard1ldpi.png") || file().name.endsWith("Artboard1mdpi.png") || file().name.endsWith("Artboard1hdpi.png") ||

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

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")
        })
不幸的是,我遇到以下错误:

> 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,选择什么?

这也应该有效,干燥;)

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)
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)