在 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)
具体如何实现呢?
尝试相反的方法,即使用类来转换对象:
val num : Int = kotlinClass.cast(obj)
val num2 : Int = javaClass.cast(obj)
Run Code Online (Sandbox Code Playgroud)
如果您确实需要,请务必添加kotlin-reflect
为库KClass.cast
。或者,您可能也对 感兴趣KClass.safeCast
。
归档时间: |
|
查看次数: |
1836 次 |
最近记录: |