使用泛型机制编写的代码,要比那些杂乱的使用Object类型的变量,在进行强制类型转换的代码有更好的安全性和可读性。
泛型类:
类型变量T放在类名之后,用<>,泛型类可以看做普通类的工厂。
泛型方法:
泛型放在修饰符的后面,返回类型的前面。
泛型类型变量的限定:
无论合适定义了一个泛型类型,都自动提供过了一个相应的原始类型擦除类型变量,替换为限定类型(无限定为Object)
编译器自动插入强制类型抓换。
约束:
- 不能使用基本类型实例化泛型参数
- 运行时类型查询只适用于原始类型(a instanceof Pair<String> -> false)
- 不能创建参数化类型的数组
- 不能实例化类型变量(new T())
- 不能在静态域或者方法中引用类型变量
- 不能抛出或者捕获泛型类的实例
两个类有继承关系,泛型类没有联系
通配符类型:
通配符还可以指定一个超类型限定:? super Manager
带有超类型限定的通配符可以向泛型对象写入,带有子类型限定的通配符可以从泛型类型读取。
时间: 2024-10-06 11:33:54