泛型
- Java选择的泛型实现方式叫作“类型擦除式泛型”。它只在程序源码中存在,在编译后的字节码文件中,全部泛型都被替换为原来的裸类型。裸类型应被视为所有该类型泛型化实例的共同父类型。
泛型通配符
- 当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符
<?>
表示(比如void method(List<?> list)
)。但是一旦 使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用。 - 只能作为参数使用。
受限泛型
- 之前设置泛型的时候,实际上是可以任意设置的,只要是类就可以设置。但是在JAVA的泛型中可以指定一个泛型的上限和下限。
泛型的上限
- 格式:
类型名称<? extends 类>对象名称
- 意义:
只能接收该类型及其子类
泛型的下限
- 格式:
类型名称<? super 类>对象名称
- 意义:
只能接收该类型及其父类