Ответ
reified — это модификатор типа, который позволяет получить доступ к информации о типе во время выполнения в обобщённых функциях. Обычно в JVM стирается информация о generic-типах, но reified сохраняет её.
Используется только с inline-функциями, так как компилятор подставляет реальный тип на этапе компиляции.
Пример:
inline fun <reified T> checkType(value: Any) {
if (value is T) {
println("Value is of type ${T::class.simpleName}")
}
}
// Использование
checkType<String>("Hello") // Выведет: Value is of type String
Без reified пришлось бы передавать Class<T> параметром. Особенно полезно в случаях, когда нужно работать с классами напрямую, например, в Gson.fromJson() или при создании интентов.