我創建一個使用這個慣例Groovy對象...在Groovy中分配對象屬性的速記方式?
Item item1 = new Item(name: "foo", weight: "150")
...有操縱性對象的速記慣例?這樣的事情...
item1(name: "hello", weight: "175") //this does not work, btw ;-)
...而不是...
item1.name = "hello"
item1.weight = "175"
我創建一個使用這個慣例Groovy對象...在Groovy中分配對象屬性的速記方式?
Item item1 = new Item(name: "foo", weight: "150")
...有操縱性對象的速記慣例?這樣的事情...
item1(name: "hello", weight: "175") //this does not work, btw ;-)
...而不是...
item1.name = "hello"
item1.weight = "175"
你有with
方法,as described by the great Mr Haki
item1.with{
name = "hello"
weight = "175"
}
是的,你可以像下面這樣做:
item1.metaClass.setProperties(item1, [name: "hello", weight: "175"])
我更喜歡item1.with如果我有混凝土變量發生變化
item1.with {
name = "lalal"
weight = 86
high = 100
}
我更喜歡InvokerHelper.setProperties當我有特性的圖(可以是任何大小)
@ToString
class Item{
def name
def weight
}
Item item1 = new Item(name: "foo", weight: "150")
println "before: $item1"
use(InvokerHelper) {
item1.setProperties weight: 22, name: "abc"
}
println "after : $item1"
輸出:
before: Item(foo, 150)
after : Item(abc, 22)
甜,謝謝...哈基先生是神嗎? – raffian 2011-12-14 16:30:43
@RaffiM對於Groovy和Grails的用戶來說,他非常棒。 (他的博客很棒) – Grooveek 2011-12-14 16:33:44