java泛型知识总结

来源:互联网 发布:php超链接怎么做 编辑:程序博客网 时间:2024/06/06 20:55

1泛型(generic)是指参数化类型的能力。可以定义带泛型类型的类或方法,随后编译器会用具体的类型来替换它。

2泛型的主要优点是能够在编译时,而不是在运行时检测出错误。

3泛型类或方法允许指定对象允许的类型,以和这个类或方法一起工作。如果试图使用带有不兼容对象的类或方法,编译器会报错

4不使用类型参数的泛型类型称为 原始类型,例如ArrayList。使用原始类型是为了向后兼容JDK较早的版本

5  通配泛型的三种形式:? extends T ,或者? super T , 这里T代表一个泛型类型,““称为非受限通配  它和 ?extends Object 等同。

 “? extends T”称为受限通配   代表T或者T的一个未知的子类型  “? super T ”称为下限通配   表示T或者T的一个为止父类型

6使用称为类型消除的方法来实现泛型。编译器使用泛型类型信息来编译代码,但是随后消除它,因此  泛型信息在运行时是不可用的。这个方法能使泛型代码向后兼容使用原始类型的遗留代码。



注意:

1泛型类型必须是引用类型。 例: Integer ,Double,Character   不能用 int ,double,char

2不能使用泛型参数创建实例,即不能使用new E()

3不能使用泛型参数创建数组,即不能使用new E[]

4异常类不能是泛型的,因为泛型类不能扩展java.lang.Throwable。

5在静态环境下不允许类的参数是泛型类型。由于泛型类的所有实例都有相同的运行时类,所以泛型类的静态变量和方法是被它的所有实例所共享的。因此,在静态方法、数据域或者初始化语句中,为了类而引用泛型类型参数是非法的。

原创粉丝点击