Quero escrever uma função que retorne todos os itens em um List
que não seja o primeiro ou o último item (um ponto de passagem). A função obtém um genérico List<*>
como entrada. Um resultado só deve ser retornado se os elementos da lista forem do 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}
}
Ao lançar o List<*>
para List<Waypoint>
, recebo o aviso:
Cast desmarcado: kotlin.collections.List to kotlin.colletions.List
Não consigo descobrir uma maneira de implementá-lo de outra forma. Qual é a maneira certa de implementar essa função sem esse aviso?