泛型的使用讲解
import java.util.List; /** * 背景: 平常定义变量:String name,这里变化的是值,类型是不会变,指定为String,如果需要类型也能变化呢?此时泛型就登场了: * 泛型: * T name:此时类型是变化的,如可以是String ,也可以是其他任意的类型变量,如StringBuffer,因此泛型其实就是变化的类型 * 泛型的使用:用在类上和用在方法上,不管使用在哪里,都必须要先声明,声明的方式<T>,尖括号里面的值是随便定的,写成<E>也可以; * 泛型声明在类上:此时类里面的成员变量和方法都可以直接使用它,如下面的A<T>,这叫做泛型的声明,private T t,这是泛型的使用,类比普通变量声明,要先声明后使用 * 如:String name;是声明变量,后面就可以使用name="xiaoming" * 泛型声明在方法上:如下面的sayHi方法,void前面的<E> 是声明泛型,参数E e是使用泛型,如果没有<E>声明就会报错,如下写法: * public void say(E e){} 这里将会报E为不知道的类型,编译都不会通过 * 在集合中使用泛型变量时,可以使用泛型的父类List<? super E> e,或者泛型的子类List<? extends E> e */ public class A<T> { private T t; private String name; public <E> void sayHi(E e){ } public <E> void swim(List<? extends E> e){ } public <E> void fly(List<? super E> e){ } public T getT() { return t; } public void setT(T t) { this.t = t; } public String getName() { return name; } public void setName(String name) { this.name = name; } }