所以Groovy有这种相对方便的语法将方法转换为闭包,例如
[1,2,3].each { println it }
// is equivalent to
[1,2,3].each this.&println
Run Code Online (Sandbox Code Playgroud)
但是我如何转换类构造函数,例如
[1,2,3].collect { new Thing( it ) }
// is equivalent to
[1,2,3].collect ????
Run Code Online (Sandbox Code Playgroud)
Groovy的反射有Thing.constructors
List来检查,但我无法弄清楚放入&符号的位置Thing.constructors[0]
.
您可以使用invokeConstructor
metaClass方法调用给定参数的构造函数.
class Thing {
Thing(Integer num) { this.num = num }
Integer num
}
[1,2,3].collect Thing.metaClass.&invokeConstructor
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
751 次 |
最近记录: |