浅谈Java泛型及泛型的使用

浅谈Java泛型

当做一些集合的统一操作的时候,需要保证集合的类型是统一的,此时需要泛型来进行限制。

泛型的优点:数据安全、获取数据时效率比较高。
浅谈Java泛型及泛型的使用_第1张图片

给集合中的元素设置相同的类型就是泛型的基本需求。
在这里插入图片描述
浅谈Java泛型及泛型的使用_第2张图片

浅谈Java泛型及泛型的使用_第3张图片

泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为:
泛型类、泛型接口、泛型方法。

泛型的高阶使用:

1、泛型类

在定义类的时候在类名的后面添加起到占位的作用,类中的方法的返回值类型和属性的类型都可以使用。

代码展示:

public class FanxingClass<A> {
    private int id;
    private A a;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public A getA() {
        return a;
    }
    public void setA(A a) {
        this.a = a;
    }
    public void show(){
        System.out.println(" id : "+id+" ,A : "+a);
    }

}

浅谈Java泛型及泛型的使用_第4张图片

输出结果:
浅谈Java泛型及泛型的使用_第5张图片

2、泛型接口

在定义接口的时候,在接口的名称后添加
(1)子类在进行实现的时候,可不填写泛型的类型,此时在创建具体的子类对象的时候才决定使用什么类型。

浅谈Java泛型及泛型的使用_第6张图片
浅谈Java泛型及泛型的使用_第7张图片

在这里插入图片描述
此时实现类时传递的是什么类型,泛型里面放的就是什么类型。

(2)子类在实现泛型接口时,只在实现父类的接口的时候指定父类的泛型类型即可,此时,测试方法中的泛型必须要和子类保持一致。

浅谈Java泛型及泛型的使用_第8张图片
在这里插入图片描述
输出结果:
浅谈Java泛型及泛型的使用_第9张图片

3、泛型方法

在定义方法的时候,指定方法的返回值和参数是自定义的占位符,可以是类名的T。也可以是自定义的Q,只不过在使用Q时需要使用定义在返回值前面。


public class FanxingMethod<T> {
    private T t;
    public T getT() {
        return t;
    }
    public void setT(T t) {
        this.t = t;
    }
    public <Q> void show(Q q){
        System.out.println(q);
        System.out.println(t);
    }
}

浅谈Java泛型及泛型的使用_第10张图片

输出结果:

浅谈Java泛型及泛型的使用_第11张图片

你可能感兴趣的:(java基础,java)