在groovy中使用map构造函数时,setter的触发顺序是什么

在groovy中使用map构造函数时,setter的触发顺序是什么,groovy,constructor,setter,Groovy,Constructor,Setter,在Groovy中,当我调用映射构造函数时,例如 new Player(name:'Lionel', surname:'Messi', number: 10, team:barcelona) 如何知道调用属性设置器的顺序 我需要知道这一点,因为我需要在一些setter中应用某些逻辑,并且我需要知道调用每个setter时将在对象中设置哪些数据。使用快速脚本,它们似乎是按照传递的顺序设置的: class Foo { def settersCalled = [] def setFoo(

在Groovy中,当我调用映射构造函数时,例如

new Player(name:'Lionel', surname:'Messi', number: 10, team:barcelona)
如何知道调用属性设置器的顺序


我需要知道这一点,因为我需要在一些setter中应用某些逻辑,并且我需要知道调用每个setter时将在对象中设置哪些数据。

使用快速脚本,它们似乎是按照传递的顺序设置的:

class Foo {
    def settersCalled = []
    def setFoo(foo) { settersCalled << 'foo' }
    def setBar(bar) { settersCalled << 'bar' }
    def setBaz(baz) { settersCalled << 'baz' }
}

assert new Foo(foo: 0, bar: 0, baz: 0).settersCalled == ['foo', 'bar', 'baz']
assert new Foo(bar: 0, foo: 0, baz: 0).settersCalled == ['bar', 'foo', 'baz']
assert new Foo(baz: 0, bar: 0, foo: 0).settersCalled == ['baz', 'bar', 'foo']
class-Foo{
def settersCalled=[]
def setFoo(foo){settersCalled