Voglio scrivere una funzione che restituisca ogni elemento in un List
che non è il primo o l'ultimo elemento (un punto intermedio). La funzione ottiene un generico List<*>
come input. Un risultato dovrebbe essere restituito solo se gli elementi della lista sono del tipo Waypoint
:
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}
}
Quando lancio il List<*>
a List<Waypoint>
, ricevo l'avvertenza:
Cast non selezionato: kotlin.collections.List to kotlin.colletions.List
Non riesco a trovare un modo per implementarlo altrimenti. Qual è il modo giusto per implementare questa funzione senza questo avviso?