如何使用Groovy Set来获得独特的元素?

Guy*_*ely 2 groovy

这一定很简单,我仍然无法理解我错在哪里:

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)

我应该覆盖哪种方法才能获得唯一性?

tim*_*tes 7

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)