【问题标题】:What is the difference between "<T> T" and "T" return types in JavaDocsJavaDocs中的“<T> T”和“T”返回类型有什么区别
【发布时间】:2021-01-31 03:35:18
【问题描述】:

我仍然在研究泛型,因此我们将不胜感激。

【问题讨论】:

  • 你能在 JDK 或第三方库中分别举一个例子吗?

标签: java generics javadoc


【解决方案1】:

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

如果您之前看到&lt;T&gt;,则表示泛型类型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) {
  // ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 2022-12-23
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多