2

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

val obj: Any = 123
val num: Int = obj as Int

就我而言,我希望能够转换为Class<Int>or 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)

这究竟是如何实现的?

4

1 回答 1

4

换一种方式试试,即使用类来转换对象:

val num : Int = kotlinClass.cast(obj)
val num2 : Int = javaClass.cast(obj)

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

于 2020-01-09T09:50:31.980 回答