我想知道下面的Java代码行中第一个<T>
代表什么。我已经阅读了几个关于泛型的教程,但是没有一个示例在方法名称之前有2个泛型。感谢。
public <T> Provider<T> scope(Key<T> key, Provider<T> unscoped);
答案 0 :(得分:13)
第一个<T>
是实际的类型参数声明,即它表示该方法是通用的,并且具有类型参数T
。
第二个<T>
只是方法返回类型的一部分,即该方法返回Provider<T>
。
如果省略了第一个<T>
,则返回类型Provider<T>
将无效,因为T
将不是类型的可识别标识符/名称。 T
仅被识别为类型,因为第一个<T>
会将其引入。