Java泛型中的通配符

Java泛型中的通配符可以直接定义泛型类型的参数。而不用把该函数定义成泛型函数。

public class GenericsTest {
    
    public static void main(String[] args) {
        List<String> name = new ArrayList<String>();
        List<Integer> age = new ArrayList<Integer>();
        List<Number> number = new ArrayList<Number>();
        
        name.add("icon");
        age.add(18);
        number.add(314);
 
        //getUperNumber(name);//1
        getUperNumber(age);//2
        getUperNumber(number);//3
       
   }
 
//通配符方式实现,很简洁
public static void getData(List<?> data) { System.out.println("data :" + data.get(0)); } public static void getUperNumber(List<? extends Number> data) { System.out.println("data :" + data.get(0)); }

  //普通方式实现
   public static <T>void getData(List<T> data) {
      System.out.println("data :" + data.get(0));
   }
   
   public static <T extends Number>void getUperNumber(List<T> data) {
          System.out.println("data :" + data.get(0));
   }

}
原文地址:https://www.cnblogs.com/MrZhang1/p/7261210.html