Wildcard (?
) в Java используется в обобщениях (generics) для представления неизвестного типа. Он позволяет работать с коллекциями, содержащими элементы различных совместимых типов, без строгой привязки к конкретному типу.
Основные сценарии использования:
?
(Upper Bounded Wildcard): Обозначает любой тип, являющийся наследником или реализующим указанный класс/интерфейс. Используется для чтения данных из коллекции.
Пример: List<? extends Number>
может содержать List<Integer>
, List<Double>
, .getList<Long>
.
java
? super
(Lower Bounded Wildcard): Обозначает любой тип, являющийся предком указанного класса/интерфейса или сам этот класс/интерфейс. Используется для записи данных в коллекцию (принцип PECS: Producer Extends, Consumer Super).
Пример: `List<? supe
Wildcard (?
) в Java используется в обобщениях (generics) для представления неизвестного типа. Он позволяет работать с коллекциями, содержащими элементы различных совместимых типов, без строгой привязки к конкретному типу.
Основные сценарии использования:
?
(Upper Bounded Wildcard): Обозначает любой тип, являющийся наследником или реализующим указанный класс/интерфейс. Используется для чтения данных из коллекции.
Пример: List<? extends Number>
может содержать List<Integer>
, List<Double>
, .getList<Long>
.
java
? super
(Lower Bounded Wildcard): Обозначает любой тип, являющийся предком указанного класса/интерфейса или сам этот класс/интерфейс. Используется для записи данных в коллекцию (принцип PECS: Producer Extends, Consumer Super).
Пример: `List<? supe
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.