【发布时间】:2014-11-02 05:48:28
【问题描述】:
我有没有办法为两个不同的类定义相同的隐式排序?
我尝试按照以下几行做一些事情,但它没有检测到排序。
abstract class Common
case class A extends Common
case class B extends Common
implicit val KeyOrdering = new Ordering[Common] {
override def compare(x: Common, y: Common): Int = {
x.toString.compareTo(y.toString)
}
}
【问题讨论】:
-
extends是保留关键字而不是类型。你的意思是Common? -
是的,我就是这个意思。感谢您指出这一点。
-
是的,我也不确定为什么这不起作用。
List(A(), B()).sorted表示找不到隐式排序,但明确的List(A(), B()).sorted(KeyOrdering)有效。