【发布时间】:2014-05-13 14:07:56
【问题描述】:
我有一个方法应该采用带有前两个参数 Car 和 Tire 的 Closure 并且应该返回一个 Vehicle 类型。
有没有办法在 Groovy 闭包中声明参数的类型?
我在想
method(Closure<Vehicle, Car, Tyre> closure);
但是正确的方法是什么?
【问题讨论】:
我有一个方法应该采用带有前两个参数 Car 和 Tire 的 Closure 并且应该返回一个 Vehicle 类型。
有没有办法在 Groovy 闭包中声明参数的类型?
我在想
method(Closure<Vehicle, Car, Tyre> closure);
但是正确的方法是什么?
【问题讨论】:
你只能定义一个闭包的返回类型,即:Closure<Vehicle>
从 Groovy 2.3 开始,您可以使用 @ClosureParam 来调整类型系统(请参阅“调整类型系统” here),但我相信 Groovy 2.3 目前不在 Grails 中。 ..
【讨论】:
闭包上的泛型参数用于返回类型。 Closure<String> 应该返回一个字符串。
可以使用@ClosureParams注解声明参数
【讨论】: