Java Generics - Wildcards ilimitados

O ponto de interrogação (?), Representa o curinga, significa tipo desconhecido em genéricos. Pode haver momentos em que qualquer objeto pode ser usado quando um método pode ser implementado usando a funcionalidade fornecida na classe Object ou quando o código é independente do parâmetro de tipo.

Para declarar um parâmetro Unbounded Wildcard, liste o? só.

Exemplo

O exemplo a seguir ilustra como extends é usado para especificar um curinga ilimitado.

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);
   }
}

Isso produzirá o seguinte resultado -

Resultado

1 
2 
3 
1.2 
2.3 
3.5