gpt4 book ai didi

scala - 如何在Scala中比较两个对象的相等性?

转载 作者:行者123 更新时间:2023-12-01 08:28:09 24 4
gpt4 key购买 nike

我在两个对象之间进行了非常基本的相等性检查,但它失败了。

package foo
import org.junit.Assert._

object Sandbox extends App{
class A

val a = new A
val b = new A
assertEquals(a, b)

}

我的用例更复杂,但我想让我的基础知识正确。运行代码时出现断言错误:
Caused by: java.lang.AssertionError: expected:<foo.Sandbox$A@3f86d38b> but was:<foo.Sandbox$A@206d63fd>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:743)
at org.junit.Assert.assertEquals(Assert.java:118)
at org.junit.Assert.assertEquals(Assert.java:144)
. . . .

如何比较两个对象的相等性?

最佳答案

  • 您可以覆盖 AnyRef equals 函数(与您需要在 Java 中覆盖 Object.equals 的方式相同)
    def equals(arg0: Any): Boolean
  • 或者,您可以创建一个案例类,Scala 为开箱即用的案例类生成正确的 equals。
  • 关于scala - 如何在Scala中比较两个对象的相等性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28426909/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com