我尝试为某些必需的变量执行if,如果没有提供值,请设置默认值:
slaveCpus = Globals."SLAVE_${i}_CPU" ?: '0.1',
groovy.lang.MissingPropertyException: No such property: SLAVE_1_CPU for class: Globals
答案 0 :(得分:0)
如果我正确地关注了您的问题,您希望将动态静态属性添加到Globals,默认值为0.1。
这可以通过向Globals类添加静态$static_propertyMissing
方法来实现:
class Globals {
static double SLAVE_1_CPU = 1.0
static double SLAVE_2_CPU = 2.0
static $static_propertyMissing(String name) {
0.1
}
}
如果您无法更改Globals源代码,您还可以使用元编程来添加方法:
Globals.metaClass.static.propertyMissing << { name -> 0.1 }
采用任何一种方法,
(1..3).each { i ->
println Globals."SLAVE_${i}_CPU"
}
打印出来
1.0
2.0
0.1