Что такое reified

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

Ответ

Reified позволяет сохранить информацию о типе во время выполнения в дженериках, что обычно стирается из-за type erasure в JVM. Используется с inline функциями.

Пример:

inline fun <reified T> parseJson(json: String): T {
    return Gson().fromJson(json, T::class.java)
}

// Вызов
val user = parseJson<User>("{...}")

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