2012-05-02 16 views
31

Czasem wygodnie jest, że Groovy mapuje == do equals(), ale co mam zrobić, gdy chcę porównać według tożsamości? Na przykład GPathResult implementuje equals, wywołując text(), który jest pusty dla większości wewnętrznych węzłów. Próbuję zidentyfikować węzeł główny, ale przy tej implementacji nie jest to możliwe. Byłoby możliwe, gdybym mógł porównać przez tożsamość.Jak wykonać odniesienie jest równe w Groovy?

Odpowiedz

36

użyć metody is. tj:

a.is(b) 

Zobacz the docs więcej opisem

8

Zastosowanie is tożsamości testowanie obiektu:

groovy:000> class Foo { } 
===> true 
groovy:000> f = new Foo() 
===> [email protected] 
groovy:000> g = new Foo() 
===> [email protected] 
groovy:000> f.is(g) 
===> false 
groovy:000> g.is(f) 
===> false 
groovy:000> f.is(f) 
===> true 
Powiązane problemy