1、泛型是指参数化类型的能力。使用泛型能定义带泛型类型的类或方法,之后编译器会用具体类型来替换泛型类型
2、泛型的主要优势是能够在编译时而不是运行时发现错误
3、泛型类或方法允许指定对象允许的类型,以和这个类或方法一起工作。如果试图使用带有不兼容对象
的类或方法,编译器会检测出这个错误
4、定义在类、接口或者静态方法中的泛型称为形式泛型类型,随后可以用一个实际具体类型来替换它。
替换泛型类型的过程称为泛型实例化
5、不使用类型参数的泛型类称为原始类型,如ArrayList,使用原始类型是为了向后兼容JDK较早的版本
6、通配泛型类型有三种形式:?、? extends T或者? super T,这里的T代表泛型类型。第一种形式“?”称为非受限通配,它和? extends Object是一样的。第二种形式? extends T称为受限通配,代表T或者T的一个未知子类型。第三种类型? super T称为下限通配,表示
T或者T的一个未知父类型
7、使用称为类型消除的方法来实现泛型。编译器使用泛型类型信息来编译代码,但是随后消除它。因此,泛型信息在运行时是不可用的。这个方法能够使泛型代码向后兼容使用原始类型的遗留代码。
8、不能使用泛型类型参数来创建实例
9、不能使用泛型类型参数来创建数组
10、不能在静态环境中使用类的泛型类型参数
11、在异常类中不能使用泛型类型参数