2011-07-11 9 views

Odpowiedz

16

same sprawdza, czy oba obiekty są faktycznie taka sama instancja (równość odniesienia). eq dzwoni equals i dlatego sprawdza, czy obie mają tę samą wartość (równość wartości).

Pamiętaj, że domyślna implementacja equals wykorzystuje == wewnętrznie, a więc eq zrobi to samo jak same jeśli używasz klas, które nie mają odpowiedniej equals nadpisanie.

Mimo to, lepiej jest podać swoje intencje, używając same dla równości referencyjnej i eq dla równości wartości. Może to również pomóc w wykryciu błędów (tj. Stwierdzeniu, że zapomniałeś zastąpić equals).

17

sama używa == i wynosi wykorzystuje .equals()

Powiązane problemy