我开始阅读一些关于Java中泛型的文章,有一件事让我困惑:
public static <t> T getFirst(List<T> list)
“此方法将接受对List的引用,并将返回T类型的对象。”
很酷,但是<t>
做了什么(小写一个,静态之后)?我尝试过但没能理解......
答案 0 :(得分:6)
应该是:
public static <T> T getFirst(List<T> list)
那么,<T>
是什么意思?
这意味着此方法的范围有一个名为<T>
的类型。该方法还将返回该类型T
的实例。
如何使用?
如果您传递List<String>
,则该方法应返回列表中的第一个String
。
如果您传递List<Integer>
该方法,则应返回列表中的第一个Integer
。
支持此类方法的重点是什么?
根据List
和
例如,您不必担心该方法将返回除列表中对象类型之外的其他类型,这样可以减轻可能的转换负担。
答案 1 :(得分:1)
也许这样可以理解:
public static <T> T getFirst(T something)
简而言之,当您调用方法时,类型 T 将是稍后给出的参数:
String text = "text";
getfirst(text);
现在编译器会知道所有 T 在这里都是String
。