我想获得对变量的运行时 KClass 的引用。我浏览了关于类和反射的文档,但是 documentation 似乎只解释了如何获得对 KClass 的静态引用(例如 String::class
的 String
)
我需要一个变量的运行时 KClass。这似乎无法编译:
fun test(x: Any) {
val klazz = x::class
}
上面例子中
KClass
的x
是怎么得到的?
最佳答案
如 reference 所述,您可以使用 .javaClass.kotlin
获取对象的 KClass
标记。例子:
fun printKClass(x: Any) {
val c = x.javaClass.kotlin
println(c)
}
对于
KClass
的任何进一步操作,您还应该添加 kotlin-reflect
library 作为依赖项,因为反射功能已移出 kotlin-stdlib
。
关于reflection - 如何在 Kotlin 中获取变量的运行时类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35875478/