您的位置:首页 - 教程 - Java - 正文
Java泛型基础
泛型,宽泛的数据类型”

可以接受任意类型(类)的数据。



■泛型定义(类和接口)

类型参数必须是一个合法的标识符,习惯上使用单个大写字母,通常情况下,K 表示键,V 表示值,E 表示异常或错误,T 表示一般意义上的数据类型。

例:class Point<TX, TY>



■泛型变量

泛型类在实例化时必须指出具体的类型,也就是向类型参数。

例:

TX x;

TX y;



■泛型实例化

Point<Integer, Integer> p = new Point<Integer, Integer>();

类型擦除

Point p = new Point();



■泛型方法

class UTest {

public <TX, TY> TX print(TX x, TY y)



public class Point<TX, TY> {

public TX print(TX x, TY y) {



■泛型继承

public <TSB extends T1> T getMax(T array[]){



■泛型通配符(?)

为了避免类型擦除,可以使用通配符(?):

public void print(Point<?, ?> p) {

? extends T 表示泛型的类型参数只能是 T 及其子类,这与定义泛型类或泛型方法时泛型继承类似。

使用通配符(?)不但可以限制类型的上限,还可以限制下限。限制下限使用 super 关键字,例如 <? super TSB> 表示只能接受 TSB 及其父类。

评论: