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