Я хотел бы сделать универсальную функцию, способную сортировать различные вложенные классы case одним из своих общих аргументов.Scala: общая функция с вложенными классами ячеек
На данный момент я сделал это:
sealed trait SortableByGeoPoint {
val geographicPoint: Int
}
case class A(id: Int, geographicPoint: Int) extends SortableByGeoPoint
case class B(image: String, geographicPoint: Int) extends SortableByGeoPoint
case class C(a: A, other: String)
case class D(b: B, other: Int)
def sortByGeoPoint(sequence: Seq[SortableByGeoPoint]): Seq[SortableByGeoPoint] = sequence.sortBy(_.geographicPoint)
Он хорошо работает, чтобы отсортировать последовательность класса А или класса B, но я хотел бы, чтобы заставить его работать на случай класса С или D (которые содержат подкласс класса SortableByGeoPoint) Как я могу это сделать?
Я взглянул на бесформенность, но не нашел способ сделать это, но любой способ сделать это (зная, что я добавлю другие классы, такие как класс C или D), будет идеальным.