JavaDocs中的“ <T> T”和“ T”返回类型有什么区别

问题描述

仍然将我的头放在仿制药上,以便能获得帮助。

解决方法

在两种情况下,返回类型均为T

不过,如果您之前看到过<T>,则表示已在方法级别定义了通用类型T

<T extends JustAnExample> T getThatThing() {
  // ...
}

如果没有,则可能是在类级别定义的:

class MyClass<T extends JustAnExample> {
  T getThatThing() {
    // ...
  }
}

或者,从技术上讲,它也可以简单地是一个名为T的类,尽管这些单字母类型通常引用泛型(纯粹按惯例):

class MyClass {
  T poorlyNamedTypeYuck() {
    // ...
  }
}

请注意,您不必使用T作为返回类型:

<T> void thisIsAlsoValid(T genericUsedHere,List<T> orElseWhere) {
  // ...
}