概念
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
泛型方法
简单使用
有界类型参数
即有界的类型参数,用于限制传递到类型参数的类型范围。(比如,希望传的泛型是数字类型)
用法:<类型参数 extends 上界> (eg:<T extends Number>)
( 注:这里的extends不仅限于继承父类的子类,也可以代指实现了接口的类)
多边界:<T extends A & B & C>
(注:其实只能继承一个父类,且必须写在第一个,其他实现的均为接口,即Class A,interface B,interface C)
泛型类
概念:具有一个或多个泛型变量的类被称之为泛型类。
泛型类
通配符类型
概念:对类型进行限定。通配符不是类型变量,因此不能在代码中使用"?"作为一种类型。
子类型限定
<? extends X>表示该通配符所代表的类型是T类型的子类。
超类型限定
<? super X>表示该通配符所代表的类型是T类型的父类。
特点:1、限定为X和X的超类型,直至Object类,因为不知道具体是哪个超类型,因此方法返回的类型只能赋给Object。
2、因为X的子类型可以向上转型为X,所以作为方法的参数时,可以传递null,X以及X的子类型。
无限定
无限定不等于可以传任何值,相反,作为方法的参数时,只能传递null,作为方法的返回时,只能赋给Object。
作用:对于一些简单的操作比如不需要实际类型的方法,就显得比泛型方法简洁。