В какой функции можно использовать reified

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

Ответ

reified используется с inline-функциями, когда нужно сохранить информацию о типе во время выполнения. Это полезно в дженериках, где обычные типы стираются. Пример:

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

// Использование
val user = parseJson<User>("""{"name":"John"}""")

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