【发布时间】:2020-01-23 22:34:33
【问题描述】:
以下代码将 String 隐式向上转换为 Any。
val s = "some string"
val upcasted: Any = s
但是,以下内容无法编译(类型不匹配):
val s = arrayOf("some string")
val upcasted: Array<Any> = s
你可以成功投到Array<Any>如图:
val s = arrayOf("some string")
val upcasted: Array<Any> = s as Array<Any>
但是,这会发出警告 "Unchecked cast: Array<String> to Array<Any>"。
相同的逻辑确实似乎适用于列表,那么 Array 的内部实现与这种类型的转换不兼容吗?也许是因为数组的内存表示?
【问题讨论】:
-
查看official docs上的差异
-
好链接,谢谢!
标签: arrays generics kotlin casting any