Java中的泛型:jdk1.5出现的安全机制。
好处:
- 将运行时期出现的问题ClassCastException转到了编译时期。
- 避免了强制转换的麻烦。
“ <>”什么时候用?
当操作的引用数据类型不确定的时候,使用“<>”。将要操作的引用数据类型传入即可。其实,“<>”就是一个用于接收具体引用数据类型的参数范围。在程序中,只要用到了带有“<>”的类或者接口,就要明确传入的具体引用数据类型。
泛型技术是给编译器使用的技术,用于编译时期,它确保了类型的安全。运行时,会将泛型去掉,生成的class文件中是不带泛型的,这称为泛型的擦除。原因是:为了兼容运行时的类加载器。然后,通过获取元素的类型进行转化动作,这叫做泛型的补偿。
泛型的通配符
泛型的通配符:?未知类型。
泛型方法与泛型类中的方法
泛型方法与泛型类没关系,泛型方法不是必须在泛型类中。
public <T> T fun(T t1){}//泛型方法
class A<T> {
public T fun(T t1){}//泛型类中的方法
}
泛型类中使用泛型
- 成员类型
- 返回值和参数类型
- 局部变量的引用上
泛型的继承和实现
class A<T>{}
class AA extends A<String>{}//AA不是泛型类
继承泛型类
- 子类不是泛型类:需要给父类传递类型常量
- 子类是泛型类:可以给父类传递类型常量,也可以传递类型变量
class A<T>{}
class AA extends A<Integer>{}//正确;子类不是泛型类
本文深入解析Java泛型机制,从其引入背景、好处到实际应用,包括泛型擦除、通配符使用、泛型方法与类的区别及泛型的继承实现等关键概念。适合希望深入了解Java泛型特性的开发者阅读。
10万+

被折叠的 条评论
为什么被折叠?



