【问题标题】:Groovy Closure generic return/parameters?Groovy Closure 通用返回/参数?
【发布时间】:2014-05-13 14:07:56
【问题描述】:

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

有没有办法在 Groovy 闭包中声明参数的类型?

我在想

method(Closure<Vehicle, Car, Tyre> closure); 

但是正确的方法是什么?

【问题讨论】:

    标签: grails groovy


    【解决方案1】:

    你只能定义一个闭包的返回类型,即:Closure&lt;Vehicle&gt;

    从 Groovy 2.3 开始,您可以使用 @ClosureParam 来调整类型系统(请参阅“调整类型系统” here),但我相信 Groovy 2.3 目前不在 Grails 中。 ..

    【讨论】:

      【解决方案2】:

      闭包上的泛型参数用于返回类型。 Closure&lt;String&gt; 应该返回一个字符串。

      可以使用@ClosureParams注解声明参数

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

      【讨论】:

      • 是的,不幸的是我使用的是 Grails 2.3.7 和低于 Groovy 2.3.0 :( ...也过于复杂!但欢迎返回类型!
      猜你喜欢
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      相关资源
      最近更新 更多