1、概述
泛型是一种把明确类型的工作放在了创建对象或者调用方法时候才去明确的特殊的类型
泛型就相当于一个预定义类型
2、好处
A、解决了黄色警告线问题
B、把系统运行期间的异常提前到了编译期间
C、优化了程序设计,不需要做强制转换了
3、不足
泛型传入的只能是引用类型
3、泛型的定义
A、在类上定义
//在类上定义一个泛型
public class MyArrayList<T> {
}
//在类上定义两个泛型
public class MyArrayList<T, S> {
}
//在类上定义两个泛型,且第二个类型必须是第一个类型的子类
public class MyArrayList<T, S extends T> {
}
说明:
T,S是名字,可以随意起,该处定义的泛型可以在本类的任意地方使用
父类上定义的泛型不能被子类继承
B、在方法上定义
//在方法上定义一个泛型
public <M> void show(M m){
}
//在方法上定义两个泛型
public <M, S> void show(M m, S s){
}
//在方法上定义两个泛型,且第二个泛型必须事第一个泛型的子类
public <M, S extends M> void show(M m, S s){
}
说明:
T,S是名字,可以随意起,该处定义的泛型可以在该方法的任意地方使用
C、在接口上定义泛型
和在类上定义一样
3、泛型的使用
可以在继承关系,实现关系,创建对象时使用
在使用过程中,父类或父接口如果没有明确给定类型,那么子类必须定义泛型而且需要和父类或父接口的泛型名字一样(掌握)
|