我正在阅读以下代码,
public static <t> T getFirst(List<T> list)
我了解List<T> list
,该方法获取对List<T>
的引用作为参数,然后返回
类型为T
的对象,但关键字public static后的<t>
呢?
答案 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
类型元素的列表。即它标志着你的方法通用