下面是脚本管道中的Jenkins groovy代码,我们用它来传递方法
def dict = [:]
def register(String x, Closure y){ dict[x]=y }
我们说register('a', this.&foo)
将一个方法传递给register()
,接受闭包作为第二个参数
其中foo()
是一种方法
def foo(parm){
// do something with parm
}
其中,parm
的可能值为‘a’
为了避免传递this.&foo
而调用register('a', foo)
,register
方法的第二个参数类型应该是什么?
1条答案
按热度按时间nukf8bse1#
如果要调用
register('a', foo)
,则foo
必须是闭包,如而不是
构造
this.&foo
称为方法指针运算符,用于将方法转换为闭包。如果foo
必须保留为方法,那么您无法避免this.&foo
运算符。Groovy不支持将方法作为foo
传递。另一方面,您的register
方法需要一个闭包作为第二个参数,因此必须选择:foo
定义为闭合this.&foo
运算符将foo
方法转换为闭包