Задать вопрос

Зачем в дженериках используется ?, и эквивалентен ли он T/E?

Встретил такую конструкцию Function<? super T, ? extends U>
Никогда не задумывался, зачем нужен ?.
Эквивалентен ли код выше такому коду: Function<E super T, E extends U>.
Если да, то зачем использовать ?.
  • Вопрос задан
  • 577 просмотров
Подписаться 7 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Java-разработчик
    14 месяцев
    Далее
  • Хекслет
    Java-разработчик
    10 месяцев
    Далее
Решения вопроса 1
Beshere
@Beshere
Разработчик
Цитирую примерно Эккеля:

<?> - неограниченная маска, означает "что угодно", в большинстве случаев компилятор не видит разницы между T и <?>.
Без ? вы сможете больше сделать с параметрами, а с ? - принимать более широкий диапазон параметров.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@engineerVadim
? extends U - некоторый тип, который является потомком U, ? super T - некоторый тип, который является предком Т. Ваша схема(так как у Вас написано), как правило применяется: первая часть для приемника, вторая для источника при обработке чего либо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы