Я пытаюсь использовать следующий метод:
fun <T> put(value: T){ val clazz = T::class.java }
но имеет исключение Kotlin: Only classes are allowed on the left hand side of a class literal
Как получить класс из общего параметра?
Какие другие параметры, кроме класса, могут быть переданы как param?
Чтобы получить доступ к родовым типам внутри функции, вам нужно сделать типы reified . Поскольку это не поддерживается JVM, он доступен только для встроенных функций:
inline fun <reified T : Any> put(value: T) { val clazz = T::class.java }
Ограничение типа Any
требуется для предотвращения некоторых осложнений с типами NULL.
исправлено
fun <T: Any> put(value: T){ val clazz = value.javaClass }