Wildcards
μ λ€λ¦ μ½λμμ λ¬Όμν (question mark : ?) λ₯Ό μμΌλ μΉ΄λλΌκ³ λΆλ¦°λ€.
μ΄ μμΌλ μΉ΄λλ κ·μ λμ§ μμ νμ μ μλ―Ένλλ° μλμ κ°μ λ€μν μν©μμ μ¬μ© κ°λ₯νλ€.
- νμ νλΌλ©ν°
- νλ
- μ§μ λ³μ
- λ°ν νμ
μ κ²½μ° μΈμλ λ§μ κ³³μμ μ¬μ© κ°λ₯νλ€.
Java λ₯Ό ν¬ν¨ν Morden Language λ€μ μΌλ°μ μΌλ‘ μλ 3κ°μ§μ Type Bounded ν κ°λ μ μ§μνλ€.
Upper Bounded
ꡬ체μ μΈ λ°©ν₯μΌλ‘ νμ λ³νμ νμ©νλ€.
μκΈ° μμ μ μμ κ°μ²΄λ§ νμ©λλ€. (리μ€μ½ν λ²μΉ νμ©)
public static double sumOfList(List<? extends Number> list) {
double s = 0.0;
for (Number n : list)
s += n.doubleValue();
return s;
}
List<Integer> li = Arrays.asList(1, 2, 3);
List<Double> li = Arrays.asList(1.2, 2.3, 3.5);
Lower Bounded
μΆμμ μΈ λ°©ν₯μΌλ‘λ§ νμ μ΄ νμ©λλ€.
μκΈ° μμ κ³Ό λΆλͺ¨μ κ°μ²΄λ§ νμ©νλ€.
public static void addNumber(List<? super Integer> list) {
for (int i = 1; i <= 10; i++) {
list.add(i);
}
}
Unbounded
μκΈ° μμ μ νμ λ§ νμ©νλ€.
List<Integer> listInteger = Arrays.asList(1, 2, 3);
List<String> listString = Arrays.asList("one", "two", "three");
β PECS Type Token β