覆盖Scala中的Equals

时间:2016-03-02 20:19:30

标签: scala

我需要为一些案例类设置一个自定义相等的方法。经过一些在线搜索后,我还没有看到任何明确的解决方案。我应该编写自己的等式检查方法吗?

1 个答案:

答案 0 :(得分:2)

是。您需要定义自己的equals方法:

case class Person(...) {

    override def equals(other: Any): Boolean = {
        ...
    }

    override def hashCode: Int = {
        ...
    }
}

equals方法看起来很简单,但也可能是技巧。我强烈建议您阅读Scala Cookbook的以下章节,了解如何Define an equals Method (Object Equality)以及这篇关于Artima的论文:How to Write an Equality Method in Java