Groovy Closure泛型返回/参数?

Sam*_*son 5 grails groovy

我有一个方法应该采用前两个参数Car和Tire的Closure,并且应该返回一种类型的Vehicle.

有没有办法在Groovy Closures中声明参数类型?

我在想

method(Closure<Vehicle, Car, Tyre> closure); 
Run Code Online (Sandbox Code Playgroud)

但是正确的方法是什么?

tim*_*tes 5

您只能定义Closure的返回类型,即: Closure<Vehicle>

从Groovy 2.3开始,您可以使用@ClosureParam调整类型系统(请参阅此处的"调整类型系统" ),但Groovy 2.3目前不在Grails中我相信...


Wil*_*ill 0

Closure 上的泛型参数用于返回类型。Closure<String>将返回一个字符串。

@ClosureParams可以使用注释来声明参数

http://beta.groovy-lang.org/docs/groovy-2.3.0-beta-1/html/gapi/groovy/transform/stc/ClosureParams.html