这个方法返回什么?

时间:2011-04-28 09:36:51

标签: java generics

我正在阅读以下代码,

public static <t> T getFirst(List<T> list)

我了解List<T> list,该方法获取对List<T>的引用作为参数,然后返回 类型为T的对象,但关键字public static后的<t>呢?

这是什么意思?

2 个答案:

答案 0 :(得分:9)

<t>声明了一个类型参数。这意味着方法具有可在每次调用时更改的类型参数。

除非 T是项目中的具体类型(不太可能),<t>应为<T>

所以用简单的英语<T> T getFirst(List<T> list)表示:

  • 有一个名为getFirst
  • 的方法
  • 它有一个类型参数T(即任意类型,别名为T
  • 它需要List<T>作为参数(即List个任意类型的对象。)
  • 它返回一个T对象(即该任意类型的实例)。

如果你刚写了T getFirst(List<T> list),那么意思就会改变:

  • 有一个名为getFirst
  • 的方法
  • 它需要List<T>作为参数(即具体类型List的{​​{1}}个对象
  • 它返回具体类型T的对象。

答案 1 :(得分:0)

它告诉编译器T不是任何具体类,而是类的占位符。否则,编译器会认为List<T>是包含T类型元素的列表。即它标志着你的方法通用