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 głosów)
Twoja ocena:
Zapisywanie głosu...

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 17 lat temu
Postaram się napisać i takie dla początkujących.
M
Redakcja Zaradni.pl 17 lat temu
Porada przydatna dla zaawansowanych:) Fajne byłyby też porady dla tych, którzy dopiero chcieliby zacząć programować
P
Adam Pietrzykowski 17 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 dla działania serwisu i analizy ruchu. Polityka prywatności