我在两个对象之间进行了非常基本的相等性检查,但它失败了。
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)
. . . .
如何比较两个对象是否相等?
-
您可以覆盖 AnyRefequals函数(与 Java 中重写 Object.equals 的方式相同)
def equals(arg0: Any): Boolean
或者你也可以做A案例类,Scala 开箱即用地为案例类生成正确的等于。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)