如何在 Kotlin 中安全地将 List<Any?> 转换为 List<Waypoint>?Unchecked Cast
大家好!我刚开始学习 Kotlin,遇到了列表类型转换的问题。
我有一个函数返回 `List`。在这个函数内部,我确切知道所有元素都是我的类 `Waypoint` 的对象。但是当我尝试将结果赋值给类型为 `List` 的变量时,编译器会发出警告:"Unchecked Cast: kotlin.collections.List to kotlin.collections.List"。
以下是示例代码:
```kotlin
data class Waypoint(val latitude: Double, val longitude: Double, val name: String)
fun getData(): List {
// 假设这来自外部源(JSON、数据库)
return listOf(
mapOf("lat" to 55.75, "lon" to 37.62, "name" to "莫斯科"),
mapOf("lat" to 59.93, "lon" to 30.31, "name" to "圣彼得堡")
).map { Waypoint(it["lat"] as Double, it["lon"] as Double, it["name"] as String) }
}
fun main() {
val data: List = getData()
// 这里出现了问题: