Принцип Wildcard в Java Generics позволяет использовать символ «?» вместо Generic типа, обозначая любой тип. 1 Также с помощью Wildcards можно задать границы для семейства типов, определённых обобщённым классом. 1
Wildcards способен ограничивать тип вниз (extends) или вверх (super): 1
Важно понимать, что Wildcard тип может иметь только ссылка, но не сам объект. 1 То есть он может быть задан для локальной переменной, поля класса, параметра метода или типа возвращаемого значения, но не может быть использован в операторе new. 1