Java 如何在kotlin中查找泛型类名

Java 如何在kotlin中查找泛型类名,java,kotlin,Java,Kotlin,我有一节这样的课 class Box<T>(t: T) { var value = t var classType = T::class.java --Not working } var box = Box<Int>(1) 类框(t:t){ var值=t var classType=T::class.java--不工作 } 变量框=框(1) 在类内部,如何查找泛型类中传递的类类型。例如,在上面的例子中,我想找到传递的整数。根据您的需要,您有两种不依赖

我有一节这样的课

class Box<T>(t: T) {
    var value = t
    var classType = T::class.java --Not working
}

var box = Box<Int>(1)
类框(t:t){
var值=t
var classType=T::class.java--不工作
}
变量框=框(1)

在类内部,如何查找泛型类中传递的类类型。例如,在上面的例子中,我想找到传递的整数。

根据您的需要,您有两种不依赖反射的可能性:

1。获取类型为
T
的实例的类,将
T
的上限设置为
Any

类框(t:t){
var值=t
var classType=t::class.java
}
这有两个限制:

  • 它不会返回创建类时传递的精确类型,而是
    t
    实例的类型,该实例可以是
    t
    的子类型
  • 它不支持可为空的类型
2。在
操作符fun
中模拟重新定义类型参数的构造函数

类框(t:t,private val classType:class){
var值=t
伴星{
内联运算符fun invoke(t:t):Box=Box(t,t::class.java)
}
}
此解决方案解决了上述两个问题。

您所说的“什么样的类值”是什么意思?你肯定不是这个意思吧?