Выбор ответа Junior Дженерики и стирание спрашивают часто обновлено
Добавление в List<? extends Number>
Вопрос
Что можно сделать со списком List<? extends Number> list?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Читать как Number, а добавить можно только null. ? extends Number означает «список какого-то конкретного подтипа Number».
Варианты ответа
- Добавлять любые
Numberи читать элементы какNumber - Читать как
Number, а добавить можно толькоnullправильный ответ - Добавлять
Integer, а читать элементы только какObject - Ни читать, ни добавлять: такой список можно только передать
Разбор
? extends Number означает «список какого-то конкретного подтипа Number». Любой элемент точно Number, поэтому чтение безопасно. Но компилятор не знает, List<Integer> это или List<Double>, поэтому добавить нельзя ничего, кроме null. Добавлять Integer и читать как Object позволяет ? super Integer.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.