Дженерики Java - неограниченные подстановочные знаки
Знак вопроса (?) Представляет собой подстановочный знак, обозначающий неизвестный тип в универсальных шаблонах. Могут быть случаи, когда можно использовать любой объект, когда метод может быть реализован с использованием функций, предоставляемых в классе Object, или когда код не зависит от параметра типа.
Чтобы объявить параметр Unbounded Wildcard, укажите? только.
пример
В следующем примере показано, как extends используется для указания неограниченного подстановочного знака.
package com.tutorialspoint;
import java.util.Arrays;
import java.util.List;
public class GenericsTester {
public static void printAll(List<?> list) {
for (Object item : list)
System.out.println(item + " ");
}
public static void main(String args[]) {
List<Integer> integerList = Arrays.asList(1, 2, 3);
printAll(integerList);
List<Double> doubleList = Arrays.asList(1.2, 2.3, 3.5);
printAll(doubleList);
}
}
Это даст следующий результат -
Вывод
1
2
3
1.2
2.3
3.5