Java泛型

Java泛型

泛型上下限

泛型的上限

格式:<? extends 类>
含义:只能接收该类型及其子类

泛型的下限

格式:<? super 类>
含义:只能接收该类型及其父类

泛型方法

泛型方法返回值之前的泛型声明,是用来告诉编译器在编译的时候识别它的类型。

静态方法

public static <K> void sold(K k){
    System.out.println(k.getClass().getSimpleName());
}

静态方法中的泛型不能直接使用类声明的泛型类型,需要单独声明一个。如果和类声明的泛型类型一样,会有报错提示:
img

但是,如果在返回方法前声明泛型方法则不会报错,代码可以正常运行:
img

在泛型类中使用泛型静态方法,为了代码的可阅读行,建议和类中的泛型声明区别开来。

非静态方法

public class Fruit<T> {
    public <T extends Apple> void price(T t){
        System.out.println(t.getClass().getSimpleName());
    }

    public static <K> void sold(K k){
        System.out.println(k.getClass().getSimpleName());
    }
}

非静态方法返回值前的泛型声明可以省略,不过需要指定泛型上下限的时候需要在返回之前显示声明泛型类型。

posted @ 2023-01-05 14:18  BugsHunter  阅读(52)  评论(0编辑  收藏  举报