كيفية تحويل List<Any?> إلى List<Waypoint> بأمان في Kotlin؟ 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()
// هنا تظهر المشكلة:
}