快速理解java泛型用法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kai_zone/article/details/81910639

 

    Java泛型编程是JDK1.5版本后引入的。泛型让编程人员能够使用类型抽象,通常用于集合里面。本文旨在整理一些泛型的最基本的用法。

泛型类

什么时候定义泛型类?
当类中要操作的引用数据类型不确定的时候,
早期定义Object来完成扩展。
现在定义泛型来完成扩展。

class Utils<QQ>
{
    private QQ q;
    public void setObject(QQ q)
    {
        this.q = q;
    }
    public QQ getObject()
    {
        return q;
    }
}
Utils<Worker> u = new Utils<Worker>();

泛型方法

//泛型类定义的泛型,在整个类中有效。如果被方法使用,
//那么泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定了。
//
//为了让不同方法可以操作不同类型,而且类型还不确定。
//那么可以将泛型定义在方法上。

特殊之处:
静态方法不可以访问类上定义的泛型。因为方法先于类创建对象,
如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。

class Demo<T>
{
    public  void show(T t)
    {
        System.out.println("show:"+t);
    }
    public <Q> void print(Q q)
    {
        System.out.println("print:"+q);
    }
    public  static <W> void method(W t)
    {
        System.out.println("method:"+t);
    }
}

泛型定义在接口上。

interface Inter<T>
{
    void show(T t);
}

泛型的高级应用

? 通配符。也可以理解为占位符。
泛型的限定;
? extends E: 可以接收E类型或者E的子类型。上限。
? super E: 可以接收E类型或者E的父类型。下限

猜你喜欢

转载自blog.csdn.net/kai_zone/article/details/81910639