【发布时间】:2018-07-26 11:15:16
【问题描述】:
我想使用对象表达式创建动态对象,但我想通过它们的内容来比较它们。有没有不实现equals和hashCode的简单写法?
为了更具体,使这个测试的断言通过的最小更改是什么?
@Test
fun `an object comparison test`() {
val obj1 = object {
val x = 1
}
val obj2 = object {
val x = 1
}
assertEquals<Any>(obj1, obj2)
}
【问题讨论】:
-
不,没有办法。这两个对象是两个不同类的实例,彼此之间没有关系。每当编译器或 IDE 为您生成
equals()时,它要求对象具有相同的类。 -
谢谢@yole。这是有道理的。