Я предпочитаю 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)