Чтобы ограничить тип аргумента в Kotlin, вы можете использовать функцию ограничения типа, называемую «ограничения параметров общего типа». Это позволяет указать, что аргумент должен быть подтипом определенного класса или интерфейса. Вот несколько методов, которые можно использовать с примерами кода:
-
Использование верхней границы:
fun <T : Number> printNumber(value: T) { println(value) }В этом примере функция
printNumberпринимает аргумент типаT, который должен быть подтипомNumber. Это означает, что вы можете передать в качестве аргумента любой подклассNumber, напримерInt,DoubleилиFloat. -
Использование нескольких верхних границ:
fun <T> printElement(value: T) where T : CharSequence, T : Comparable<T> { println(value) }Здесь функция
printElementпринимает аргумент типаT, который должен реализовывать какCharSequence, так иComparableинтерфейсы. -
Использование определенного класса:
fun <T : MyClass> processObject(obj: T) { obj.doSomething() }В этом случае функция
processObjectпринимает аргумент типаT, который должен быть подклассомMyClass.
Используя ограничения типа, вы гарантируете, что аргумент, передаваемый этим функциям, удовлетворяет указанным требованиям типа. Это помогает обеспечить безопасность типов и позволяет компилятору обнаруживать потенциальные ошибки, связанные с типами, во время компиляции.