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

时间:2016-03-11 14:57:41

标签: generics kotlin

我尝试使用下一个方法:

Kotlin: Only classes are allowed on the left hand side of a class literal

但有异常&students

如何从泛型参数获取类?

除了类之外还有哪些其他选项可以作为参数传递?

2 个答案:

答案 0 :(得分:7)

要访问函数中的泛型类型,您需要创建类型reified。 由于JVM本身不支持它,因此它仅在内联函数中可用:

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

需要Any的类型范围来防止可以为空的类型出现一些并发症。

答案 1 :(得分:0)

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