Groovy Именован и расчетные аргументы по умолчанию

Groovy поддерживает как по умолчанию, так и названные аргументы. Я просто не вижу, как они работают вместе.

Мне нужны некоторые классы для поддержки конструкции, используя простые не именованные аргументы, а также использование именованных аргументов, таких как ниже:

def a1 = new A(2)
def a2 = new A(a: 200, b: "non default")

class A extends SomeBase {
    def props
    A(a=1, b="str") { 
        _init(a, b)
    }

    A(args) { 
       // use the values in the args map:
       _init(args.a, args.b)
       props = args
    }

    private _init(a, b) {
    }

}

Обычно это хорошая практика для поддержки оба одновременно? - это вышеупомянутый код единственным способом Это?

5
задан Ayman 14 September 2011 в 11:23
поделиться