我想编写一个函数,返回 List
中不是第一个或最后一个项目(通过点)的每个项目。该函数获取一个通用 List<*>
作为输入。只有当列表的元素类型为 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}
}
当将 List<*>
转换为 List<Waypoint>
时,我会收到警告:
未检查的 Cast: kotlin.Collection. List Kotlin 收藏,名单
否则我想不出办法来实现它。在没有这个警告的情况下实现这个函数的正确方法是什么?