我尝试使用下一个方法:
fun <T> put(value: T){
val clazz = T::class.java
}
但有异常(exception)
Kotlin: Only classes are allowed on the left hand side of a class literal
如何从泛型参数中获取类?
除了类可以作为参数传递之外,还有哪些其他选项?
最佳答案
要访问函数中的泛型类型,您需要创建类型 reified .
由于 JVM 本身不支持此功能,因此它仅在内联函数中可用:
inline fun <reified T : Any> put(value: T) {
val clazz = T::class.java
}
Any
的类型界限需要防止可空类型出现一些并发症。
关于generics - 如何从泛型方法参数获取java类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35943351/