5

したがって、Groovy には、メソッドをクロージャーに変換するための比較的便利な構文があります。

[1,2,3].each { println it }

// is equivalent to

[1,2,3].each this.&println

しかし、クラス コンストラクターを変換するにはどうすればよいですか。

[1,2,3].collect { new Thing( it ) }

// is equivalent to

[1,2,3].collect ????

Groovy のリフレクションにはThing.constructors検査するリストがありますが、アンパサンドをどこに入れるかわかりませんThing.constructors[0]

4

1 に答える 1

6

指定された引数のコンストラクターを呼び出すinvokeConstructormetaClass メソッドを使用できます。

class Thing {
    Thing(Integer num) { this.num = num }
    Integer num
}

[1,2,3].collect Thing.metaClass.&invokeConstructor
于 2012-05-22T22:52:31.693 に答える