2010-04-29 19 views
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 

我應該爲了得到唯一覆蓋哪種方法?

回答

7

hashCode,就像使用Java的

class A { 
    boolean equals(o) { true } 
    int hashCode() { 1 } 
} 
def s = [new A(), new A()] as Set 
assert s.size() == 1