2013-02-14 72 views
3

我想重寫Groovy中的> =運算符,發現this頁面,但我仍然不確定如何去做。我有一個班級鈔票,包含物業系列和金額,我希望實現金額物業的比較基礎。Groovy中最重要的比較運算符

+0

你想找出'> ='或者你也想攔截''<', '>並且這樣? – Will 2013-02-14 18:59:28

+0

我不需要攔截特定的運算符,因此覆蓋所有比較運算符都可以。 – Dan 2013-02-14 19:43:57

回答

5

你不重寫>=運營商,要實現compareTo

class Foo implements Comparable { 
    int val 
    int compareTo(Object o) { return val <=> ((Foo) o).val } 
} 

f1 = new Foo(val: 5) 
f2 = new Foo(val: 10) 
println f1 <= f2 
=> true 
+0

如何: int compareTo(def o){val <=> o.val} ? – Dan 2013-02-14 19:49:07

+1

@丹,參數不需要'def':int compareTo(o){val <=> o.val}'= D – epidemian 2013-02-14 19:54:01

+0

@Dan當然,這取決於你想要找回哪種錯誤。如果我比較特定的類,我通常寧願有類演員問題,否則我會比較一個界面,但它往往是一個偏好問題。 – 2013-02-14 19:54:08