0
点赞
收藏
分享

微信扫一扫

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 泛型的形式二:泛型方法_泛型_02


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


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


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


我们给它存个123456它立马就知道是Integer

同理可得

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


4、泛型方法的类型形参,什么时候指定类型实参

当你调用这个方法时,编译器会根据方法的实参的类型,来确定泛型的类型实参的具体类型

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

00021.06 泛型的形式二:泛型方法_值类型_08


5、泛型方法的<泛型形参列表>中的类型也可以指定上限

<T extends 上限>

T的类型实参只能上限本身或上限的子类

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


<T extends 上限1 & 上限2 & 。。。。>

如果多个上限,都要满足

总结

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


举报

相关推荐

0 条评论