您的位置:首页 > 编程语言 > Java开发

Java语言程序设计-进阶篇(二)泛型

2018-02-01 12:19 274 查看


泛型类是JDK1.5之后增加的特性,可以使程序更加可靠

1.定义泛型

定义泛型类时,<E>放在类名之后。定义泛型方法时,<E>放在返回值之前。

2.原始类型与泛型消除

Comparable a = new Comparable();是原始类型,相当于Comparable<Object> a = new Comparable<Object>();泛型在JVM中实际上是转换成原始类型来处理的,目的是为了向后兼容,这种转换就称为泛型消除。有由于泛型消除,所以泛型类有些一些使用限制,比如不能实例化,不能使用泛型类创建数组,不能在静态上下文中使用泛型类,异常不能是泛型。

3.限制可用类

<E>相当于<E extends Object>,表示只能是类型E,另外<E>只是代号,用<T>也可以表示,含义是某个类型。另外<E extends anyClass>含义是某个类,但是这个类只能是anyClass的子类。

4.通配符

<?>表示任何类型,称为非受限通配符,相当于<? extends Object>

<? extends T>表示任何T的子类或者T,称为首先通配符。

<? super T>表示任何T的父类或者T,称为下限通配符。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息