Java泛型
Java泛型
泛型上下限
泛型的上限
格式:<? extends 类>
含义:只能接收该类型及其子类
泛型的下限
格式:<? super 类>
含义:只能接收该类型及其父类
泛型方法
泛型方法返回值之前的泛型声明,是用来告诉编译器在编译的时候识别它的类型。
静态方法
public static <K> void sold(K k){
System.out.println(k.getClass().getSimpleName());
}
静态方法中的泛型不能直接使用类声明的泛型类型,需要单独声明一个。如果和类声明的泛型类型一样,会有报错提示:
但是,如果在返回方法前声明泛型方法则不会报错,代码可以正常运行:
在泛型类中使用泛型静态方法,为了代码的可阅读行,建议和类中的泛型声明区别开来。
非静态方法
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());
}
}
非静态方法返回值前的泛型声明可以省略,不过需要指定泛型上下限的时候需要在返回之前显示声明泛型类型。