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?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage