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

What is the difference between "<T> T" and "T" return types in JavaDocs

我仍然在思考泛型问题,因此我们将不胜感激。

在这两种情况下,return 类型都是 T

如果你之前看到<T>,这意味着泛型T已经在方法级别定义:

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

如果没有,那么它可能已经定义在class级别:

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

或者,它在技术上也可以简单地是一个名为 T 的 class,尽管那些 single-letter 类型通常指的是泛型(完全按照约定):

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

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

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