Przejdź do treści
Programowanie

Jak efektywnie programować w języku Java? Metoda equals.

Autor Zaradni
Autor Zaradni Adept
08 lipca 2009 ~2 min czytania
Jak efektywnie programować w języku Java? Metoda equals.
Metoda equals pochodząca z klasy Object, ma za zadanie określać czy dane dwa obiekty są identyczne czy nie. Jak wiadomo najlepiej jest tłumaczyć na przykładzie dlatego załóżmy, że implementujemy klasę reprezentującą pracownika o nazwie Employee, mającą trzy atrybuty firstname, lastname oraz department. Zapytasz: a co w tym skomplikowanego? Wystarczy jedynie porównać wszystkie atrybuty jednego obiektu z odpowiednimi atrybutami obiektu drugiego i jeśli zachodzi równość stwierdzić, że obiekty są identyczne. Otóż tak napisana metoda będzie działać prawidłowo. Pokazać chcę jednak implementację nie tylko prawidłową, ale i efektywną.

Kroki

1
Sprawdź, czy nie porównujesz obiektu z samym sobą. Wykonaj porównanie referencji wskazującej na aktualny obiekt this z referencją przekazaną jako argument metody. Jeśli zachodzi równość zwróć wartość true.
2
Sprawdź, czy argument funkcji wskazuje rzeczywiście na obiekt odpowiedniej klasy, w naszym wypadku Employee. Do tego celu skorzystaj z operatora instanceOf. Jeśli klasa się nie zgadza zwróć false
3
Jeśli dwa wcześniejsze warunki nie rozstrzygnęły jeszcze kwestii równości obiektów przejdź do porównywania atrybutów. Najlepszym rozwiązaniem jest skorzystanie z klasy EqualsBuilder pakietu org.apache.commons.lang.builder.
4
Co zyskujemy implementując metodę w ten sposób? Zyskujemy czas wykonania porównania, który może zostać zmarnowany na niepotrzebne operacje porównujące atrybuty klasy w przypadku, kiedy jest to zbędne. Czas wykonania metody jest tym, co odróżnia metodę efektywną i działającą poprawnie od metody jedynie logicznie poprawnej.
Krok 4

Oceń tę poradę

4.3
(8 glosow)
Twoja ocena:

Komentarze

Komentarze (5)

Zaloguj się, aby dodać komentarz.

P
Patrycja Zaradni.pl 15 lat temu
Jak dla mnie to porada jak z kosmosu :P
U
Autor Zaradni.pl 15 lat temu
Czysto i klarownie wytłumaczone, na pewno się przyda :)
Z
Autor Zaradni 16 lat temu
Postaram się napisać i takie dla początkujących.
M
Redakcja Zaradni.pl 16 lat temu
Porada przydatna dla zaawansowanych:) Fajne byłyby też porady dla tych, którzy dopiero chcieliby zacząć programować
P
Adam Pietrzykowski 16 lat temu
super! porada jakich malo. wiecej takich artykulow. tego mi bylo trzeba zeby zaczac programowac

Ta strona używa plików cookies

Używamy cookies, aby zapewnić prawidłowe działanie serwisu i analizować ruch na stronie. Polityka prywatności