Сопоставление Middle Дженерики и стирание обновлено

Wildcard и что с ним можно

Вопрос

Сопоставьте объявление параметра и что с ним можно делать.

Попробуйте сами

Нажмите слева, потом подходящее справа.

Показать ответ и разбор

Коротко

extends даёт безопасное чтение, super безопасную запись, неограниченный wildcard только чтение как Object, а конкретный тип даёт всё, но только для точного совпадения из-за инвариантности.

Правильные пары

List<? extends Number>
Читать как Number, добавлять нельзя
List<? super Integer>
Добавлять Integer, читать как Object
List<?>
Читать как Object, добавлять нельзя
List<Number>
Читать и добавлять Number, но List<Integer> не передать

Разбор

extends даёт безопасное чтение, super безопасную запись, неограниченный wildcard только чтение как Object, а конкретный тип даёт всё, но только для точного совпадения из-за инвариантности.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.