Работал ли с reified

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

Ответ

Да, работал. reified позволяет получить доступ к типу generic-параметра во время выполнения, что обычно невозможно из-за стирания типов в Java/Kotlin. Используется с 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> отдельным параметром. Ограничение - можно использовать только с inline-функциями, так как код подставляется в месте вызова с конкретным типом.