泛型的上下限

/*
 泛型的上下限:
 
需求1: 定义一个函数可以接收接收任意类型的集合对象, 要求接收的集合对象只能存储Integer或者是Integer的父类类型数据。

需求2: 定义一个函数可以接收接收任意类型的集合对象, 要求接收的集合对象只能存储Number或者是Number的子类类型数据。

泛型中通配符: ? 
    
    ? super Integer : 只能存储Integer或者是Integer父类元素。  泛型 的下限
     
     ? extends Number : 只能存储Number或者是Number类型的子类数据。 泛型上限
     
 */
public class Demo5 {

    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<Integer>();
        ArrayList<Number> list2 = new ArrayList<Number>();
        
        HashSet<String> set = new HashSet<String>();
        //getData(set);
        
    }
    
    //泛型的上限
    public static void getData(Collection<? extends Number> c){
        
        
    }
    
    //泛型的下限
    public static void print(Collection<? super Integer> c){
        
    }
    
}
原文地址:https://www.cnblogs.com/xufengyuan/p/6373009.html