Ответ
Ограничение сверху (upper bound) в дженериках указывает, что тип-параметр должен быть подтипом указанного класса или интерфейса. Используется через ключевое слово extends.
Пример:
fun <T : Number> sum(list: List<T>): Double {
return list.sumOf { it.toDouble() }
}
Здесь T может быть только Number или его подтипом (например, Int, Double).
Особенности:
- Можно указывать только один класс (в Kotlin)
- Можно добавлять несколько интерфейсов через
where - По умолчанию верхняя граница -
Any?