我有以下课程:
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
}
}
我也有几个具体的实现。但是,当我尝试说a == b
IRDMessage 的任何子类型时,不会调用 equals 方法,它只是比较引用(默认 equals 实现)。有什么想法可能导致这种情况吗?
子类是简单的案例类。