Kotlin - 转换为 Class<T> 或 KClass<T>

ser*_*0ne 3 kotlin

在 Kotlin 中我可以Any像这样转换为另一种类型

val obj: Any = 123
val num: Int = obj as Int
Run Code Online (Sandbox Code Playgroud)

就我而言,我希望能够投射到Class<Int>KClass<Int>,类似......

val obj: Any = 123
val kotlinClass = Int::class
val javaClass = Int::class.java

val num : Int = obj.castTo(kotlinClass)
val num2: Int = obj.castTo(javaClass)
Run Code Online (Sandbox Code Playgroud)

具体如何实现呢?

Rol*_*and 5

尝试相反的方法,即使用类来转换对象:

val num : Int = kotlinClass.cast(obj)
val num2 : Int = javaClass.cast(obj)
Run Code Online (Sandbox Code Playgroud)

如果您确实需要,请务必添加kotlin-reflect为库KClass.cast。或者,您可能也对 感兴趣KClass.safeCast