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
- 它不支持可为空的类型
操作符fun
中模拟重新定义类型参数的构造函数
类框(t:t,private val classType:class){
var值=t
伴星{
内联运算符fun invoke(t:t):Box=Box(t,t::class.java)
}
}
此解决方案解决了上述两个问题。您所说的“什么样的类值”是什么意思?你肯定不是这个意思吧?