Java泛型的这种用法的含义是什么?

时间:2012-02-19 08:29:53

标签: java generics

我想知道下面的Java代码行中第一个<T>代表什么。我已经阅读了几个关于泛型的教程,但是没有一个示例在方法名称之前有2个泛型。感谢。

public <T> Provider<T> scope(Key<T> key, Provider<T> unscoped);

1 个答案:

答案 0 :(得分:13)

第一个<T>是实际的类型参数声明,即它表示该方法是通用的,并且具有类型参数T

第二个<T>只是方法返回类型的一部分,即该方法返回Provider<T>

如果省略了第一个<T>,则返回类型Provider<T>将无效,因为T将不是类型的可识别标识符/名称。 T仅被识别为类型,因为第一个<T>会将其引入。