一.什么是泛型:
泛型其实指得就是参数化类型,使得代码可以适应多种类型,它主要目的是指定容器要持有什么类型的对象
java的泛型是停留在编译阶段的,jvm在对待泛型数据时,依然把它们看成object类型的,在使用这些元素时,jvm会自动帮助开发者进行类型转化
二.泛型的优点:
1.保证了类型的安全:
可以指定容器中存放的是特定的对象,不是编译器则会报错
2.消除了强制类型转换
3.提高了代码的通用性,也提高了性能
三.泛型的使用例子:
1.元组:下面是个三元元组
public class Tuple {
private A a;
private B b;
private C c;
public Tuple(A a, B b, C c){
this.a = a;
this.b = b;
this.c = c;
}
public String toString(){
return "(" + a + "." + b + "." + c + ")";
}
}
2.泛型接口:
public interface Tuple{
T next();
}
3.泛型方法
泛型方法有一个基本原则,尽量使用泛型方法而不是泛型类。只要能够用泛型方法达到需求,就应该只用泛型方法,这样能使得代码更加清晰。
泛型方法的定义:泛型参数列表置于返回值前,例如 public < T> void f(T t)
四.泛型的衍生:super和extend