泛型的上限和下限

泛型的上限和下限

上限

上限就是指一个操作泛型最大的操作父类,例如,现在最大的上限设置成Number,那么此时,所能够接收的类型最高为Number上限,及其Number子类

package com.kk.example12.ex03;

/**
 * @author : K
 * @Date : 2022/11/9
 * @Desc : 泛型上限
 * 上限就是指一个操作泛型最大的操作父类,例如,现在最大的上限设置成Number
 * 那么此时,所能够接收的类型最高为Number上限,及其Number子类
 */

public class Info<T extends  Number> {
    
    

    private T var;
    public void setVar(T var) {
    
    
        this.var = var;
    }
    public T getVar(){
    
    
        return var;
    }

    @Override
    public String toString(){
    
    
        return this.var.toString();
    }

}

/**
 * @author 30666
 */
class Demo1{
    
    
    public static void main(String[] args) {
    
    
        Info<Integer> info1 = new Info<>();
        Info<Number> info11 = new Info<>();

    }
}

下限

泛型下限,指的是只能设置其具体的类或者父类,当只能在方法中设置

package com.kk.example12.ex03;

/**
 * @author : K
 * @Date : 2022/11/9
 * @Desc : 泛型下限,指的是只能设置其具体的类或者父类,当只能在方法中设置
 */

public class Info2<T>   {
    
    
    private T var;

    public T getVar() {
    
    
        return var;
    }

    public void setVar(T var) {
    
    
        this.var = var;
    }

    @Override
    public String toString() {
    
    
       return this.var.toString();
    }
}

class GenericsDemo{
    
    
    public static void main(String[] args) {
    
    
        Info2<String> info2 = new Info2<>();
        Info2<Object> info22 = new Info2<>();
        info2.setVar("hello");
        info22.setVar(new Object());
        fun(info2);
        fun(info22);
    }
    public static void fun(Info2<? super String> temp){
    
    
        System.out.println(temp+",");
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_50569789/article/details/127820825