Jeśli zaimplementuję java.lang.Comparable
dla klasy, czy nadal muszę przesłonić metodę equals()
? Czy też Comparable
będzie działać również dla equals
?java.lang.Comparable i jest równa
Jeśli odpowiedź brzmi no, to co się stanie, jeśli pojawią się jakieś rozbieżności? Powiedzmy, że sposób, w jaki określam dwa obiekty jako równe w metodzie equals()
, różni się od sposobu, w jaki określam dwa obiekty tej samej klasy jako równe w compareTo()
z .
Co więcej, jeśli zaimplementuję Comparable
, czy muszę również przesłonić equals()
?
+1 Oto link do odpowiednich rozdziałów skuteczna Javy (patrz punkt 11) http://java.sun.com/developer/Books/effectivejava/Chapter3.pdf – MByD
@MByD Dzięki za link. To (co nie dziwi) mówi to lepiej niż ja! – dlev
@MbyD dzięki za link. Czy można wzywać a.compareTo (b) lub compare() bezpośrednio? – aps