Вопросительный знак (?), Представляет подстановочный знак, обозначает неизвестный тип в обобщениях. Могут быть случаи, когда любой объект может использоваться, когда метод может быть реализован с использованием функциональных возможностей, предоставляемых в классе 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); } }
Это даст следующий результат —