Java Generics-상한 와일드 카드

물음표 (?)는 와일드 카드를 나타내며 제네릭에서 알 수없는 유형을 나타냅니다. 유형 매개 변수에 전달할 수있는 유형의 종류를 제한하려는 경우가있을 수 있습니다. 예를 들어, 숫자에 대해 작동하는 메서드는 Number 또는 해당 하위 클래스의 인스턴스 만 허용하려고 할 수 있습니다.

상한 와일드 카드 매개 변수를 선언하려면?, extends 키워드, 상한을 나열하십시오.

다음 예는 extends를 사용하여 상한 와일드 카드를 지정하는 방법을 보여줍니다.

package com.tutorialspoint;

import java.util.Arrays;
import java.util.List;

public class GenericsTester {

   public static double sum(List<? extends Number> numberlist) {
      double sum = 0.0;
      for (Number n : numberlist) sum += n.doubleValue();
      return sum;
   }

   public static void main(String args[]) {
      List<Integer> integerList = Arrays.asList(1, 2, 3);
      System.out.println("sum = " + sum(integerList));

      List<Double> doubleList = Arrays.asList(1.2, 2.3, 3.5);
      System.out.println("sum = " + sum(doubleList));
   }
}

이것은 다음 결과를 생성합니다-

산출

sum = 6.0
sum = 7.0