java中声明泛型类的方式如下:
类<T>
其中T代表类型的名称。
那么泛型到底是什么呢?
首先,你要记住以上述形式声明的类叫做泛型类。举个例子
public class AnyClass<T, K> {private T t;
private K k;
public void doSomeThing(T t, K k)
{
this.t = t;
this.k = k;
}
}
这里,必须要强调一下的是,要声明泛型一定要紧挨着类名后尖括号<T,K>这样的形式,这里的T,K表示有两个类型的参数,并且数量是不受限制的。
你要理解的是这里的T和K表示的是类型,例如String,List这样的东西。唯一要注意的一点是:这里的T或者K并不能表示为基本类型,只可以是引用类型。
我们想一个类似的类作为对比,来具体理解下。
类一:
public class AnyClass {
private String t;
private List k;
public void doSomeThing(String t, List k)
{
this.t = t;
this.k = k;
}
}
类二:
public class AnyClass {
private Integer t;
private Double k;
public void doSomeThing(Integer t, Double k)
{
this.t = t;
this.k = k;
}
}
我这里要说明的是,上面的泛型类可以完全胜任类一和类二的功能。也就是说泛型类中的类型T和K是参数化的类型,什么叫参数化的类型,就是具体的T或K类型是由你来决定的。比如: AnyClass<String, List> class1 = new AnyClass<String, List>();通脱实例化这里的T,K,我们这个类的功能就可以达到和类一同样的效果。同理:
AnyClass<Integer, Double> class2 = new AnyClass<Integer, Double>();可以达到类二同样的效果。而泛型只定义一个就可以搞定,这也可以看出泛型的方便之处。