泛型程序设计
- 泛型类就是具有一个或多个类型变量的类,可以看作是普通类的工厂
- 可以对类型变量T设置限定,从而将类型T限制为实现某一些接口的类型,其中限定类型用“&”分隔,用逗号来分隔类型变量
public static <T extends Comparable> T min(T[] a)...
- Java虚拟机没有泛型类型对象,所有对象都属于普通类。在定义一个泛型类型的时候,都会自动提供一个相应的原始类型,原始类型是删去类型参数后的泛型类型名,擦除类型变量并替换为限定类型。如果类型T没有设置限定,那么擦除之后类型就为Object,如果设置了限定那么使用第一个限定的类型变量来替换。
- 类型擦除的过程中会与多态发生冲突,编译器会通过生成桥方法进行处理
- 不能创建参数化类型的数组,可以声明,不能进行初始化。下面的方法就是错误的:
Pair<String>[] table = new Pair<String>[10]