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

Groovy findAll闭包参数

发布时间:2020-12-14 16:32:20 所属栏目:大数据 来源:网络整理
导读:我想用我的参数使用groovy findAll来过滤闭包 filterClosure = { it,param - it.getParam == param} 我怎么能在findAll中调用这个闭包?如下? myColl = someColl.findAll(filterClosure ??? ) 解决方法 假设您的集合是一个列表,您可以使用curry用您的对象填
我想用我的参数使用groovy findAll来过滤闭包

filterClosure = { it,param ->
  it.getParam == param
}

我怎么能在findAll中调用这个闭包?如下?

myColl = someColl.findAll(filterClosure ??? )

解决方法

假设您的集合是一个列表,您可以使用curry用您的对象填充额外的closure参数:

def someColl = ["foo","bar","foo","baz","foo"]

def filterClosure = { it,param -> it.getParam == param }

myColl = someColl.findAll(filterClosure.curry([getParam:'foo']))

assert ["foo","foo"] == myColl

在上面的代码中,filterClosure“it”将被分配给作为参数传递给curry的内容,并且“param”从findAll传递给一个集合项.这对于Map集合不起作用,因为findAll for它需要一个带有一个或两个参数的闭包.

(编辑:李大同)

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

    推荐文章
      热点阅读