> Что такое reified в inline функциях Kotlin и зачем он нужен (Kotlin, Android)
Уровень: junior · Роль: mobile · Категория: Технические вопросы
Компании: Альфа-банк, ЛеруаМерлен, TrendTech
Стек: Kotlin, Android
> Пример ответа
Ключевое слово reified в Kotlin используется в inline-функциях для сохранения информации о типе во время выполнения. Обычно в JVM из-за стирания типов (type erasure) дженерики теряют информацию о типе в runtime - например, List<String> становится просто List. reified решает эту проблему: компилятор подставляет конкретный тип прямо в место вызова функции, делая его доступным внутри тела функции.
Зачем это нужно:
- Проверка типа:
if (value is T)- безreifiedэто невозможно. - Создание экземпляров:
T::class.javaилиT::class.createInstance(). - Работа с рефлексией: получение
KClassилиjavaClassдля дженерик-типа.
Пример:
inline fun <reified T> isInstanceOf(value: Any): Boolean { return value is T } fun main() { println(isInstanceOf<String>("Hello")) // true println(isInstanceOf<Int>("Hello")) // false }
Без reified пришлось бы передавать Class<T> как параметр. Важно: reified работает только в inline-функциях, так как компилятор встраивает код с конкретным типом в место вызова. Это удобно для утилит, сериализации (например, Gson.fromJson<T>) и типизированных экстеншенов в Android-разработке.
> Похожие задачи по mobile
Что такое CoroutineExceptionHandler
В чем отличие launch от async в Kotlin Coroutines
Что такое тип Nothing в Kotlin и чем он отличается от Unit
Что такое companion objects в Kotlin
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью