Kotlin: So arbeiten Sie mit List-Casts: Deaktiviert Cast: kotlin.collections.List <Kotlin.Any?> Bis kotlin.colletions.List <Waypoint>
Ich möchte eine Funktion schreiben, die jedes Element in einem @ zurückgibList
das ist nicht der erste oder der letzte Eintrag (ein Zwischenziel). Die Funktion erhält ein generischesList<*>
als Eingabe. Ein Ergebnis sollte nur zurückgegeben werden, wenn die Elemente der Liste vom Typ @ sinWaypoint
:
fun getViaPoints(list: List<*>): List<Waypoint>? {
list.forEach { if(it !is Waypoint ) return null }
val waypointList = list as? List<Waypoint> ?: return null
return waypointList.filter{ waypointList.indexOf(it) != 0 && waypointList.indexOf(it) != waypointList.lastIndex}
}
Wenn das @ geworfen wiList<*>
zuList<Waypoint>
, Ich bekomme die Warnung:
Unchecked Cast: kotlin.collections.List to kotlin.colletions.List
Ich kann keinen Weg finden, es anders zu implementieren. Was ist der richtige Weg, um diese Funktion ohne diese Warnung zu implementieren?