Что такое reified в Kotlin

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

Ответ

reified — это модификатор типа, который позволяет получить доступ к информации о типе во время выполнения в обобщённых функциях. Обычно в JVM стирается информация о generic-типах, но reified сохраняет её.

Используется только с inline-функциями, так как компилятор подставляет реальный тип на этапе компиляции.

Пример:

inline fun <reified T> checkType(value: Any) {
    if (value is T) {
        println("Value is of type ${T::class.simpleName}")
    }
}

// Использование
checkType<String>("Hello") // Выведет: Value is of type String

Без reified пришлось бы передавать Class<T> параметром. Особенно полезно в случаях, когда нужно работать с классами напрямую, например, в Gson.fromJson() или при создании интентов.