Groovy 如果不';我不在课堂上生存
我尝试对一些必需的变量执行if-then,如果没有提供值,则设置一个默认值:Groovy 如果不';我不在课堂上生存,groovy,Groovy,我尝试对一些必需的变量执行if-then,如果没有提供值,则设置一个默认值: slaveCpus = Globals."SLAVE_${i}_CPU" ?: '0.1', groovy.lang.MissingPropertyException: No such property: SLAVE_1_CPU for class: Globals 如果我没有弄错您的问题,您希望使用默认值0.1向Globals添加动态静态属性 这可以通过向Globals类添加一个static,$static\u
slaveCpus = Globals."SLAVE_${i}_CPU" ?: '0.1',
groovy.lang.MissingPropertyException: No such property: SLAVE_1_CPU for class: Globals
如果我没有弄错您的问题,您希望使用默认值0.1向Globals添加动态静态属性 这可以通过向Globals类添加一个static,
$static\u property missing
方法来实现:
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.0
2.0
0.1
Globals类应该有一个名为SLAVE\u 1\u CPU的属性。使用Globals.“SLAVE${i}{CPU”,您正在尝试动态访问属性。但要获得它们,它们应该存在。
1.0
2.0
0.1