泛型:参数化数据类型,将数据类型作为参数进行传递
泛型好处:
1)提高安全性:将运行期的错误转换到编译期
2)增加可读性
泛型不支持子类型,=号左右两边泛型类型保持一致
List<String> list = new ArrayList<String>();
JDK7后=号右边的泛型类型可以省略
List<String> list = new ArrayList<>();
<?>通配符,表示泛型类型未知,可以传递任何数据类型
<? extends 数据类型>限定通配符,可以传递“数据类型”及其子类型
<? super 数据类型>限定通配符,可以传递“数据类型”及其父类型
自定义泛型类
1)在类定义中加入类型参数,<>中一般用大写字母表示
2)类中所有类型用大写字母来代替