groovy:如何将varargs和闭包同时传递给方法?
发布时间:2020-12-14 16:32:28 所属栏目:大数据 来源:网络整理
导读:鉴于以下groovy功能: def foo(ListString params,Closure c) {...} 方法调用将是: foo(['a','b','c']) { print "bar" } 但我想摆脱函数调用中的括号(List).就像是: foo('a','b') { print "bar" } 我无法将list参数更改为varargs,因为varargs只能是函数中
鉴于以下groovy功能:
def foo(List<String> params,Closure c) {...} 方法调用将是: foo(['a','b','c']) { print "bar" } 但我想摆脱函数调用中的括号(List).就像是: foo('a','b') { print "bar" } 我无法将list参数更改为varargs,因为varargs只能是函数中的最后一个参数(这里的闭包是最后一个参数). 有什么建议吗? 解决方法
看到不可能实现你想要的东西(它是用Groovy文档编写的,你的具体案例是一个问题,不幸的是他们正在迁移文档所以我现在无法直接链接),这些内容如下:
def foo(String... params) { println params return { Closure c -> c.call() } } foo('a','b') ({ println 'woot' }) 现在你需要将闭包放在parantheses中,但你不需要再使用数组了.. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |