一、泛型介绍:
泛型是一种把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊类型。也叫参数化类型;如集合的泛型,可以明确指定该集合中只能存储指定类型的元素;也可以定义在类上,用于由调用该类的用户指明该类内容的数据类型;还可以定义在方法上,标识参数接收的是什么类型,方法中就是什么类型。
二、泛型格式:
<数据类型(只能是引用类型)>
public class Demo<T>{} 指定类的泛型
public <T> void demo() {} 指定方法的泛型
三、泛型的好处:
1.把运行时期可能出现的问题提前到了编译时期。比如:集合类型不明确,存储了不同类型的数据,但是在取出的时候强转为了其它类型,就会在运行时报错,但编译时不报错。
2.避免了强制转换类型。比如:在取出元素时,要把Object类型的数据转为具体类型,但是用了泛型后,就可以明确要取出的是什么类型,从而不用再强制转换类型。
3.优化了程序设计,解决了黄色警告线。
四、通配符:
1.?:如果没有明确,那么就是Object或者任意java类;
2.? extends E:向下限定,表示E和其所有子类;
3.? super E:向上限定,表示E和其所有父类。