目录
1、泛型概述
泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。
泛型的格式:<数据类型>
注意:泛型只能支持引用数据类型。
2、泛型的好处
统一数据类型。
把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为在编译阶段类型
就能确定下来
泛型的细节
泛型中不能写基本数据类型
指定泛型的具体类型后,传递数据时,可以传入该类类型或者其子类类型
如果不写泛型,类型默认是Object
3、泛型类
使用场景:当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类
语法:
修饰符 class 类名<类型>{}
示例:
public class ArrayList<E>
此处E可以理解为变量,但是不是用来记录数据的,而是记录数据的类型,可以写成:T、E、K、V等
4、泛型方法
语法:
修饰符 <类型>返回值类型 方法名(类型 变量名){}
示例:
public<E> void show(T t){}
5、泛型接口
语法:
修饰符 interface 接口名<类型>{}
示例:
public interface List<E>{}
如何使用一个带泛型的接口
1、实现类给出具体类型
2、实现类延续泛型,创建对象时在确定
6、泛型的继承和通配符
泛型不具备继承性,但是数据具备继承性
语法:
public static void method(ArrayList<? extends E> list) {
}
public static void method(ArrayList<? super E> list) {
}
?表示不确定的类型,他可以进行类型的限定
? extends E:表示可以传递E或者E所有的子类类型
? super E:表示可以传递E或者E所有的父类类型
7、应用场景
1.如果我们在定义类、方法、接口的时候,如果类型不确定,就可以定义泛型类、泛型方法、泛型
接口。
2.如果类型不确定,但是能知道以后只能传递某个继承体系中的,就可以泛型的通配符
泛型的通配符:
关键点:可以限定类型的范围。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/97174.html