簡體   English   中英

如何將Groovy類構造函數轉換為Closure?

[英]How do I convert a Groovy class constructor into a Closure?

因此,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]

您可以使用invokeConstructor metaClass方法為給定參數調用構造函數。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM