Sobes.tech
Назад к вопросам
Junior — Middle
70

Как определить тип параметра в Kotlin для обобщенного типа без использования reified?

Ответ от нейросети

sobes.tech AI

В Kotlin без использования reified нельзя напрямую получить тип параметра обобщенного типа из-за стирания типов (type erasure). Однако можно передать класс типа явно через параметр Class<T> или KClass<T>, чтобы определить тип во время выполнения.

Пример:

fun <T> printType(clazz: Class<T>) {
    println("Type is: ${clazz.simpleName}")
}

printType(String::class.java)  // Выведет: Type is: String

Если функция обобщенная и не inline, то для определения типа параметра нужно явно передавать класс типа, так как reified доступен только для inline-функций.

Таким образом, без reified тип передается явно, и по нему можно определить тип параметра.