如何从泛型方法param获取java类?

我尝试使用下一个方法:

fun <T> put(value: T){ val clazz = T::class.java } 

但是有例外Kotlin: Only classes are allowed on the left hand side of a class literal

如何从泛型参数获取类?

什么是除了类的其他选项可以作为参数传递?

要访问函数中的泛型类型,需要使类型具体化 。 由于这不是JVM本机支持的,所以它只能在内联函数中使用:

 inline fun <reified T : Any> put(value: T) { val clazz = T::class.java } 

Any类型的绑定是必需的,以防止可空类型的一些复杂性。

固定的

 fun <T: Any> put(value: T){ val clazz = value.javaClass }