【发布时间】:2015-12-08 22:56:34
【问题描述】:
我正在制作一个通用函数,它对以下类的不同子类进行排序:
class SortableByGeographicPoint(val geographicPoint: Int)
它的子类如下所示:
case class A(id: Int, override val geographicPoint: Int) extends SortableByGeographicPoint(geographicPoint)
我的功能是:
def sortByGeoPoint[T <: SortableByGeographicPoint](sequence: Seq[SortableByGeographicPoint]): Seq[T] = {
sequence.sortBy(_.geographicPoint) map(_.asInstanceOf[T])
}
还不错,但是我想使用时必须指定类型 T,我正在寻找避免这种情况的解决方案。
我想做这样的事情:
def sortByGeoPoint(sequence: Seq[T <: SortableByGeographicPoint]): Seq[T] = {
sequence.sortBy(_.geographicPoint) map(_.asInstanceOf[T])
}
是否有可能做到这一点,以及如何做到这一点?
【问题讨论】:
标签: scala type-inference