【发布时间】:2019-09-14 12:23:43
【问题描述】:
我正在用 Groovy 编写以下动态函数调用,并想知道是否有更简洁的方法来执行以下操作:
this.actions.each { a ->
if (a.component) {
this.context."${a.action}"(a.component)
} else {
this.context."${a.action}"()
}
}
a.action 的代码可以是没有任何参数的方法,也可以接受映射。有没有办法动态传入a.component,还是我需要对每个方法签名进行某种类型的if/else 条件检查?
【问题讨论】:
-
this.context."${a.action}"(a?.component)
-
感谢您的建议,但这会导致 > 没有方法签名:projectProperties.call() 适用于参数类型:(null) values: [null] ... 其中
projectProperties是没有任何参数的方法之一。 -
我认为你需要在问题中有条件