Comments 7
Мне кажется, что самое главное отличие — это Reified Generics в котлине, которых вообще нет в джаве.
extends
— это верхняя граница, а super
— нижняя, у вас же наоборот. Легко представить, почему так: ? extends Something
означает какой-то тип, наследующий Something
, т.е. находящийся ниже по дереву наследования классов, следовательно, Something
— это его верхняя граница. Аналогично с super
: ? super Something
это какой-то тип, являющийся супертипом Something, т.е. находящийся выше по дереву наследования классов, следовательно, Something
— это его нижняя граница.
Хотели как лучше, а получилось все равно сложно и непонятно.
К сожалению, единственный более менее доходчивый способ: самому взять и поэксперементировать. Когда читаешь, это не ложится. А лучше всего, если попытаться что-то реализовать на сложных дженериках — сразу становится видна вся печальная картина.
Sign up to leave a comment.
Generics в Kotlin vs. Generics в JAVA: cходства, различия, особенности