在Groovy中实现单方法接口的最简单方法是什么?
一个,喜欢Runnable
还是FileFilter
?
例如,要列出文件,我编写了类似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 }
是否可以使用闭包之类的东西来实现它?
在此特定示例中,以下代码应工作:
return [downloadFolder: downloadFolder.listFiles({ file ->
return !file.isDirectory()
})]
基本上,接口可以使用来实现Map
。
编辑在此特定示例中,应为:
new File(".").listFiles({file -> !file.isDirectory()} as FileFilter).each { println it.absolutePath }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句