在Groovy映射中使用相同的值更新所有对象字段

在Groovy映射中使用相同的值更新所有对象字段,groovy,Groovy,我在Groovy中有一个对象,比如: class Person { def name def age } 以及存储在地图中的人员集合: Person a = new Person(name: 'A', age:29) Person b = new Person(name: 'B', age:15) Map persons = ['1':a, '2':b] 我正在尝试更新所有人的年龄字段,我知道我可以这样做: persons.each{ k,v -> v.age=0 } 但是

我在Groovy中有一个对象,比如:

class Person {
  def name
  def age
}
以及存储在地图中的人员集合:

Person a = new Person(name: 'A', age:29)
Person b = new Person(name: 'B', age:15)

Map persons = ['1':a, '2':b]
我正在尝试更新所有人的年龄字段,我知道我可以这样做:

persons.each{ k,v -> v.age=0 }

但是,我想知道是否有其他方法可以在不迭代整个地图的情况下实现这一点。如您所见,所有人都应该具有相同的值

您可以使用spread运算符:

persons.values()*.age = 0

您可以使用“排列”操作符:

persons.values()*.age = 0