Groovy泛型失败

u0njafvf  于 2022-11-01  发布在  其他
关注(0)|答案(2)|浏览(187)

除了groovy比java更动态之外...
为什么这是groovy中的编译时错误(意外标记<):

interface A {
     <T> T getByClass(Class<T> clazz)
}

我该怎么写这个很棒的方式?

iszxjhcz

iszxjhcz1#

Groovy解析器不处理以泛型信息开头的方法签名...
如果您加入public修饰词,则会进行剖析:

interface A {
  public <T> T getByClass( Class<T> clazz )
}

尽管我不相信在编译时添加此注解会得到任何类型检查

slsn1g29

slsn1g292#

为了完整起见,您可以使用def代替public,结果是相同的,因为groovy中的方法默认是公共的。

interface A {
  def <T> T getByClass( Class<T> clazz )
}

相关问题