Для чего нужно ключевое слово reified в inline функции

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

Ответ

reified позволяет использовать тип T в runtime внутри inline-функции. Обычно дженерики в Kotlin стираются, но с reified тип сохраняется.

Пример:

inline fun <reified T> checkType(item: Any): Boolean {
    return item is T
}

val isString = checkType<String>("test") // true
val isInt = checkType<Int>("test") // false

Без reified нельзя проверить item is T — компилятор выдаст ошибку. Ограничение: reified можно использовать только с inline-функциями, так как код подставляется на этапе компиляции.