Jaki jest pożytek z overriding equals method w Javie?
Jaki jest pożytek z overriding equals method w Javie?

Wideo: Jaki jest pożytek z overriding equals method w Javie?

Wideo: Jaki jest pożytek z overriding equals method w Javie?
Wideo: Overriding the Object equals Method - Java Override Example - Comparing Objects - APPFICIAL 2024, Kwiecień
Anonim

Zastąp równa się i hashCode w Jawa

równa się () metoda jest używany porównywać obiekty pod kątem równości, podczas gdy hashCode jest używany wygenerować kod całkowity odpowiadający temu obiektowi

Jaki jest pożytek z metody równości w Javie?

ten równa się () metoda porównuje dwa obiekty pod kątem równości i zwraca prawdę, jeśli są równy . ten równa się () metoda przewidziane w klasie Object używa operator tożsamości (==) określający, czy dwa obiekty są równy . W przypadku prymitywnych typów danych daje to poprawny wynik.

Dodatkowo, jak przesłonić metodę równości w Javie? W powyższym fragmencie kodu klasa Person ma nadpisaną metodę equals(), która krok po kroku przyjęła następujące podejście:

  1. Jeśli odwołanie do tego obiektu jest takie samo jak odwołanie do obiektu argumentu, zwróć true.
  2. Jeśli argument ma wartość null, zwróć false.
  3. Jeśli obiekty nie należą do tej samej klasy, zwróć false.

W związku z tym, dlaczego musimy przesłonić metodę równości w Javie?

Klasa String nadpisuje ten równa się metoda odziedziczył po klasie Object i zaimplementował logikę do porównywania dwóch obiektów String znak po znaku. Powód, dla którego równa się metoda w klasie Object ma równość odwołań, ponieważ nie wie, jak zrobić cokolwiek innego.

Jaki jest pożytek z nadpisywania metody hashCode i equals w Javie?

jeśli klasa nadpisuje równa się , to musi zastąp kod hash . kiedy są oboje przesłonięty , równa się oraz hashCode musi posługiwać się ten sam zestaw pól. jeśli dwa obiekty są równy , to ich hashCode wartości muszą być równy także. jeśli obiekt jest niezmienny, wtedy hashCode jest kandydatem do buforowania i leniwej inicjalizacji.

Zalecana: