Принцип звёздной проекции (Star Projection) в Kotlin — это способ безопасного использования генериков, когда не важен конкретный тип аргумента, но нужно обеспечить типобезопасность.
Применяется в следующих случаях:
*
: Эквивалентен Any?
. Обозначает, что тип аргумента неизвестен и нет информации о его границах. Можно читать только элементы, которые являются экземплярами Any?
, и нельзя записывать никакие, кроме null.
kotlin
in *
: Эквивалентен in Nothing
. Используется для ковариантных типов (out
), когда не важен конкретный нижний тип. Можно только записывать элементы (типа Nothing, что невозможно), но нельзя читать.
kotlin
Принцип звёздной проекции (Star Projection) в Kotlin — это способ безопасного использования генериков, когда не важен конкретный тип аргумента, но нужно обеспечить типобезопасность.
Применяется в следующих случаях:
*
: Эквивалентен Any?
. Обозначает, что тип аргумента неизвестен и нет информации о его границах. Можно читать только элементы, которые являются экземплярами Any?
, и нельзя записывать никакие, кроме null.
kotlin
in *
: Эквивалентен in Nothing
. Используется для ковариантных типов (out
), когда не важен конкретный нижний тип. Можно только записывать элементы (типа Nothing, что невозможно), но нельзя читать.
kotlin
Register or sign in to get access to full answers for all questions from the question bank.