【发布时间】:2013-05-14 15:30:31
【问题描述】:
我有以下课程:
abstract class IRDMessage extends Ordered[IRDMessage] {
val messageType: MessageType.Type
val timestamp: DateTime
val content: AnyRef
def compare(that: IRDMessage): Int = {
val res = timestamp compareTo that.timestamp
res
}
override def equals(obj: Any): Boolean = obj match{
case message: IRDMessage => compareTo(message) == 0
case _ => false
}
}
我也有几个具体的实现。但是,当我尝试说 IRDMessage 的任何子类型的 a == b 时,不会调用 equals 方法,它只是比较引用(默认等于实现)。有什么想法可能导致这种情况吗?
子类是简单的案例类。
【问题讨论】:
-
你能提供完整的工作代码来显示失败吗?当我简化您所拥有的内容时,我认为没有这样的问题。