关闭

java中泛型--把泛型从文言文解释为白话文

91人阅读 评论(0) 收藏 举报
分类:

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>();可以达到类二同样的效果。而泛型只定义一个就可以搞定,这也可以看出泛型的方便之处。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:63972次
    • 积分:1596
    • 等级:
    • 排名:千里之外
    • 原创:108篇
    • 转载:3篇
    • 译文:0篇
    • 评论:6条
    博客专栏
    最新评论