使用泛型定义集合对象:
泛型: 泛型,用来灵活地将数据类型应用到不同的类、方法、接口当中。将数据类型作为参数进行传(使用集合时,必须明确集合中元素的类型.)
泛型定义格式: <元素类型>
类中定义格式:修饰符 class 类名<代表泛型的变量> { }
方法中定义格式:修饰符 <代表泛型的变量> 返回值类型 方法名(参数){ }含有泛型的方法:跟着类走,类是什么泛型,方法就是什么泛型
的接口中定义格式:修饰符 interface 接口名<代表泛型的变量> { }
1、始终不确定泛型的类型,直到创建对象时,确定泛型的类型
2、定义类时确定泛型的类型
泛型好处:
1.将运行时期的 ClassCastException,转移到了编译时期变成了编译失败。
2.避免了类型强转的麻烦。
3.指定泛型之后,可以使用增强 for
编译后的 class 文件,没有泛型的
没有泛型能保证安全吗?能,如果数据类型不符合,编译通不过
阐述泛型通配符的作用:
限定泛型的上限:
格式:<? extends E> ? 代表接收 E 类型或者 E 的子类型的元素
例如,泛型限定为:? extends Person 则 ? 代表接收 Person 类型或者 Person 子类型的元素
限定泛型的下限:
格式:<? super E> ? 代表接收 E 类型或者 E 的父类型的元素
例如,泛型限定为:? super Student 则 ? 代表接收 Student 类型或者 Student 父类型的元素
参数的数据类型可以使用泛型的通配符:?,可以接收任意类型
|
|