1.泛型,JDK5.0新增。
2.泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。
3.泛型的类型必须为类,不能是基本数据类型。
4.泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
5.自定义泛型类,以及子类继承。
public class Animal<E> {
private String name;
private E food;
public Animal(String name, E food) {
this.name = name;
this.food = food;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public E getFood() {
return food;
}
public void setFood(E food) {
this.food = food;
}
}
泛型字段未明确定义时候为Object类型
泛型字段明确定义时候为明确定义的类型
子类继承父类泛型时候可明确定义
class Cat extends Animal<String>{
public Cat(String name, String food) {
super(name, food);
}
}
或继续使用泛型
class Cat<E> extends Animal<E>{
public Cat(String name, E e) {
super(name, e);
}
}
6.通配符
class Cat<? extends Animal>{
//表示new Cat<T>中的泛型T只能为Animal及其子类
}
class Cat<? super Animal>{
//表示new Cat<T>中的泛型T只能为Animal及其父类
}