00021.06 泛型的形式二:泛型方法

系列文章目录

前言

考虑什么情况下需要声明泛型方法

一、泛型方法

1、什么情况需要声明泛型方法?
(1)如果某个静态方法想要使用泛型,需要单独设计
例如:java.util.Arrays数组工具类
public static List asList(T… a)
T…是可变参数
00021.06 泛型的形式二:泛型方法
(2)如果泛型类或泛型接口上的泛型形参不适用于某一个方法(可以是静态的,也可以是非静态),那么这个方法,可以单独设计泛型
例如:java.util.Collection
public abstract T[] toArray(T[] a)

2、泛型方法的语法格式
注意是在返回值类型的前面多了一个尖括号

【修饰符】 <泛型形参列表> 返回值类型 方法名(【数据形参列表】)

3、泛型方法的<泛型形参列表>这个类型就用于当前方法的形参类型、返回值类型、局部变量,和其他方法无关
00021.06 泛型的形式二:泛型方法
00021.06 泛型的形式二:泛型方法
00021.06 泛型的形式二:泛型方法
00021.06 泛型的形式二:泛型方法
我们给它存个123456它立马就知道是Integer
同理可得
00021.06 泛型的形式二:泛型方法
4、泛型方法的类型形参,什么时候指定类型实参
当你调用这个方法时,编译器会根据方法的实参的类型,来确定泛型的类型实参的具体类型
00021.06 泛型的形式二:泛型方法

00021.06 泛型的形式二:泛型方法
5、泛型方法的<泛型形参列表>中的类型也可以指定上限
<T extends 上限>
T的类型实参只能上限本身或上限的子类
00021.06 泛型的形式二:泛型方法
<T extends 上限1 & 上限2 & 。。。。>
如果多个上限,都要满足

总结

1、声明方法的时候单独设计
2、自动识别