Using Bounded Wildcards in Methods : Generic Parameters

The syntax for using an upper bound is as follows:

GenericType<? extends upperBoundType>
import java.util.ArrayList;
import java.util.List;

public class MainClass {
  public static double getAverage(List<? extends Number> numberList) {
    double total = 0.0;
    for (Number number : numberList) {
      total += number.doubleValue();
    }
    return total / numberList.size();
  }

  public static void main(String[] args) {
    List<Integer> integerList = new ArrayList<Integer>();
    integerList.add(3);
    integerList.add(30);
    integerList.add(300);
    System.out.println(getAverage(integerList)); // 111.0
    List<Double> doubleList = new ArrayList<Double>();
    doubleList.add(3.0);
    doubleList.add(33.0);
    System.out.println(getAverage(doubleList)); // 18.0
  }
}
111.0
18.0

  

原文地址:https://www.cnblogs.com/hephec/p/4605941.html