Можно ли добавить несколько ограничений для Generic

«Можно ли добавить несколько ограничений для Generic» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, можно. В Kotlin можно указать несколько ограничений для Generic с помощью ключевого слова where. Ограничения перечисляются через запятую, и тип должен удовлетворять всем условиям.

Пример:

fun <T> process(item: T) where T : CharSequence, T : Comparable<T> {
    // item и CharSequence, и Comparable
    println(item.length)
    println(item.compareTo(item))
}

Здесь T должен быть и CharSequence, и Comparable<T>. Если тип не соответствует всем ограничениям, будет ошибка компиляции.