我尝试使用下一个方法:
fun <T> put(value: T){
val clazz = T::class.java
}
Run Code Online (Sandbox Code Playgroud)
但有例外 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
}
Run Code Online (Sandbox Code Playgroud)
Any需要类型界限来防止可空类型的一些并发症.