加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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中,但你不需要再使用数组了..

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读