在Groovy中实现单方法接口的最简单方法是什么?
例如,要列出我编写类似java的文件:
// works Java-like
new File(".").listFiles(new FileFilter() {
@Override
boolean accept(File file) {
!file.isDirectory()
}
}).each { println it.absolutePath }
但是类似闭包不起作用
// does not work
new File(".").listFiles({file -> !file.isDirectory()}).each { println it.absolutePath }
是否可以使用闭包或其他东西来实现它?
答案 0 :(得分:2)
在这个特定示例中,以下代码应该可以工作:
return [downloadFolder: downloadFolder.listFiles({ file ->
return !file.isDirectory()
})]
基本上可以使用Map
实现接口。
修改强> 在这个特定的例子中应该是:
new File(".").listFiles({file -> !file.isDirectory()} as FileFilter).each { println it.absolutePath }