> Как проверить тип параметра в обобщённом методе Kotlin (Kotlin, Android)

Уровень: senior · Роль: mobile · Категория: Технические вопросы

Компании: Aston

Стек: Kotlin, Android

> Пример ответа

В Kotlin обобщённые типы стираются на этапе компиляции (type erasure), поэтому напрямую проверить тип параметра во время выполнения нельзя. Однако есть несколько обходных путей:

  1. Использование reified с inline-функцией - самый распространённый способ:
inline fun <reified T> checkType(value: Any): Boolean {
    return value is T
}
  1. Передача Class в качестве параметра:
fun <T> checkType(value: Any, clazz: Class<T>): Boolean {
    return clazz.isInstance(value)
}
  1. Использование when с is-проверкой для известных типов (если типы ограничены):
fun <T> process(value: T) {
    when (value) {
        is String -> println("Строка")
        is Int -> println("Число")
        else -> println("Другой тип")
    }
}

На практике для Android-разработки чаще всего применяют reified с inline-функциями, так как это наиболее лаконичный и типобезопасный подход.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью