Ответ
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-функциями.