sp0*_*00m 8

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

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

<T extends JustAnExample> T getThatThing() {
  // ...
}
Run Code Online (Sandbox Code Playgroud)

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

class MyClass<T extends JustAnExample> {
  T getThatThing() {
    // ...
  }
}
Run Code Online (Sandbox Code Playgroud)

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

class MyClass {
  T poorlyNamedTypeYuck() {
    // ...
  }
}
Run Code Online (Sandbox Code Playgroud)

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

<T> void thisIsAlsoValid(T genericUsedHere, List<T> orElseWhere) {
  // ...
}
Run Code Online (Sandbox Code Playgroud)