метод:
fun <T> getItemFromArray(array: Array<out T>, position: Int): T {
return array[position]
}
При использовании out-проекции я не могу изменить array - это ОК. Почему при использовании in-проекции для массива, получать элементы через get все еще можно (пускай и Any? из-за контрвариантности)?
В случае с declaration-site variance и in-проекции, элементы на out-позициях считались за ошибку компилятором.
Нельзя засунуть элемент, если неизвестно, какой же тип ожидается. А вытащить можно, это безопасно.
Обсуждают сегодня