Выбор ответа Middle Дженерики и вариантность обновлено
PECS в терминах Kotlin
Вопрос
Чему в Kotlin соответствует Java-запись List<? extends Number>?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: List<out Number. ? extends это ковариантность (производитель, Producer Extends), в Kotlin out. ? super это контравариантность (потребитель, Consumer Super), в Kotlin in.
Варианты ответа
List<in Number>List<Number?>List<*>List<out Number>правильный ответ
Разбор
? extends это ковариантность (производитель, Producer Extends), в Kotlin out. ? super это контравариантность (потребитель, Consumer Super), в Kotlin in. List<*> соответствует List<?>. Number? это nullable-тип, к вариантности отношения не имеет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Дженерики и вариантность»
- Проверка is List<String> и стирание типов
- Вариантность в объявлении и в месте использования
- Как обойти стирание типов
- Инвариантность, out и in
- Контравариантность in T
- Конфликт перегрузок из-за стирания
- Почему List<String> можно передать как List<Any>
- Дженерики Kotlin и Java