我有类似的东西。
def temp = "field"
object."$temp" = "hi"
这很好用。 但我可以使用setproperty,getproperty和hasproperty以某种方式实现相同的功能。
由于
答案 0 :(得分:0)
您可以将object."$temp" = "hi"
替换为object.setProperty(temp, "hi")
,将object."$temp"
替换为object.getProperty(temp)
。还有方括号语法:
e = new Expando()
def field = 'name'
e[field] = 'john doe' // set
assert e[field] == 'john doe' // get
e.setProperty(field, 'foo') // set
assert e.getProperty(field) == 'foo' // get
if (!e.hasProperty('bar')) { // has property
e['bar'] = 'my bar'
}
assert e.getProperty('bar') == 'my bar'