泛型的使用
【泛型】 ----广泛的类型(参数化类型) jdk1.5新特性。
1、使用基本类中,方法中,使用到泛型。(集合)
集合(Object:存<--->取(报错):(存放前的类型))-->(数组)。
使用泛型可以控制存入集合元素的类型。取(存入类型)出来就是什么类型。
E(异常类) T(泛型) K(键) V(值)
2、自己定义类,方法也可以使用泛型。 类,方法,接口
a、定义类 class 类名<T>
b、方法:修饰符之后和返回之前---静态方法不能使用类定义泛型。(new 类才会指定具体泛型是什么类型)
c、接口 interface 接口<>
泛型只支持对象类型(引用类型),不支持值类型(基本数据类型)
java文件–>class文件—>类加载器–>执行–>结果
泛型擦除----编译并且带入.class文件。jdk1.5之前类加载器不认识泛型。
泛型补偿----JDK动作,写了个补偿程序,类加载器用原来的,在运行时候补偿程序获知你容器里元素的类型(反射)。
【通配符】 ? 任意类型
上限(? extends E)和下限(? super E)
演示代码
package day14;
class A{
private T t;
public A(T t){
this.t = t;
}
public T getT(){
return t;
}
}
public class Demo3 {
public static void main(String[] args) {
A<String> a = new A<>("111");
System.out.println(a.getT());
}
}