如何将Groovy类构造函数转换为闭包?

如何将Groovy类构造函数转换为闭包?,groovy,closures,Groovy,Closures,所以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的反射有东西。构造函数列表要检查,但我不知道在东西中放置符号的位置。构造

所以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的反射有
东西。构造函数
列表要检查,但我不知道在
东西中放置符号的位置。构造函数[0]
可以使用它为给定参数调用构造函数

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

[1,2,3].collect Thing.metaClass.&invokeConstructor

这是一个好问题。我认为这是不可能的,因为Groovy继承了Java在方法和构造函数之间的区别(即构造函数不仅仅是类方法);但是,谁知道呢?:)太棒了,真管用。我更喜欢更简洁的东西,比如
东西。&new
,但那是Java。你知道这比
{newthing(it)}
有什么性能优势还是劣势吗?