第十章 泛型
1. 为什么要有泛型
- 指定集合里边只能装某种数据类型
- 编译时就会进行检查,防止类型错误
- 异常类不能是泛型
2.泛型使用范例
public class DAO<T>{
}
public class StudentDAO extends DAO<Student>{
}
- 泛型方法的使用
public <E> e test(){}
3.泛型在继承方面的体现
3.1 泛型在继承方面的体现
- 类 A 是类 B 的父类,E 和 E 二者不具备子父类关系,是两个并列的结构
- 但是 A
是 B
的父类
List<Object> list = null;
List<String> li = null;
3.2 通配符的使用
@Test
public void test(){
List<Object> list1 = null;
List<String> list2 = null;
List<?> list = null;
list = list1;
list = list2;
}
? extends A:
? G<? extends A> 可以作为 G 和 G 谷类的,其中B 是 A 的子类
? super A:
G<? extends A> 可以作为 G 和 G 谷类的,其中B 是 A 的父类
public class Person{}
class Student extends Person{}
class Test{
@Test
public void test(){
List<? extends Person> list = null;
List<? super Person> list2 = null;
List<Student> s = null;
List<Person> p = null;
List<Object> o = null;
list = s;
list = p;
list2 = p;
list2 = o;
}
}
|