这一定很简单,我仍然无法理解我错在哪里:
class A {
boolean equals(o) { true }
}
def s = [new A(), new A()] as Set
assert s.size() == 1 // Assertion failed: actually gives 2
Run Code Online (Sandbox Code Playgroud)
我应该覆盖哪种方法才能获得唯一性?
hashCode,就像使用Java一样
class A {
boolean equals(o) { true }
int hashCode() { 1 }
}
def s = [new A(), new A()] as Set
assert s.size() == 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5562 次 |
| 最近记录: |