泛型知识点

泛型知识点

1、什么是泛型?
泛型是一种代码模板,使得一套代码适用于不同的类型。
如数组模板可放入不同类型的元素,而不用定义固定的类型。使得一套模板适用于不同类型。

2、如何定义泛型?多泛型定义?静态方法泛型定义?
步骤:
【1】先使用固定类型进行编写类,包含其中的字段
【2】将字段的类型替换为T,类名旁边加

小测验:
定义一个Pair类,有frist和second两个字段,将这两个字段定义为泛型

class Pair<T> {
    private T first;
    private T second;

    public Pair(T first, T second) {
        this.first = first;
        this.second = second;
    }

    public void setFirst(T first) {
        this.first = first;
    }

    public void setSecond(T second) {
        this.second = second;
    }

    public T getFirst() {
        return first;
    }

    public T getSecond() {
        return second;
    }
}

3、泛型的使用注意点
【1】 new class<> 这里方框中的类型,如果引用中已经指定就可以省略
【2】 List<Number> 和List <Integer>并不是父子类关系

4、泛型的原理,泛型的局限
泛型的原理是擦除法,编译器在编译时会将T给擦除为Object,当需要进行转型的时候编译器会去强转。
泛型的局限:
【1】不能用于基本类型,如int
【2】没有泛型的Class实例
【3】不能通过instanceof进行判断具体的泛型
【4】不能实例化泛型
【5】注意泛型调用的方法和object方法不要重名,如equals。
6、extends 和 super通配符
<? extends Number> 就可以传对应的子类泛型,但是只能调用get方法
<? super Number> 就可以传对应的父类型,但只能调用set方法

posted @ 2026-02-25 09:51  goodguyly  阅读(4)  评论(0)    收藏  举报