JDK5.0新增的泛型.
- 将运行时期的ClassCastException转到编译时期,避免了强制转换的麻烦
- 类和接口使用了泛型,内部结构必须是你传进来的的类型
- 明确具体引用数据类型,不能使用基础类型,可以使用其包装类,没有指明类型,默认Object类型
- 自定义类,接口使用泛型
来定义泛型类,接口 - 多个泛型参数
逗号隔开 - 泛型不同的引用 ,不能相互赋值
- 简化处理:JDK1.7 例如:ArrayList
list = new ArrayList<>(); - 静态的方法不能使用类的泛型.
- 异常类不能声明为泛型
- 泛型方法 例如: public
void show( E[] list){ }. - 静态方法也可以定义为泛型类型.泛型方法是调用时确定的,并不是在实例化类时确定的
- 泛型的通配符 ? 例如List<?> 自能读数据,不能写数据
- < ? extends E> 接受E类型以及他的子类对象
- <? super E> 接受E 类型以及他的父类对象