Mam klasy Java, oto przykład:Sprawdź, czy dwa obiekty są całkowicie równe w Javie
public class Car {
private int fuelType;
private Date made;
private String name;
.
.
. // and so on
Teraz powiedzmy, że mam dwa obiekty samochód i chcę porównać czy wszystkie ich zmienne są równe .
W tej chwili rozwiązałem to przez nadpisanie metody equals(Object o)
i sprawdzam, czy wszystkie zmienne pasują do obu obiektów.
Problem polega na tym, że jeśli mam 20 klas, będę musiał zastąpić equals(Object o)
w każdym z nich.
Czy istnieje sposób stworzenia jakiejś uniwersalnej metody, która mogłaby porównać dowolny z dwóch obiektów, które mu przekazuję i dać mi znać, czy pasują do każdej zmiennej, czy nie?
jeśli za pomocą Eclipse kliknij prawym przyciskiem myszy -> źródło-> generuj równe i hash. wygenerowane równości będą porównywane przy użyciu dowolnych pól, na które je ustawisz. nawiasem mówiąc, tak, to jest standardowa metoda "Object.equals (Object other)". – eduyayo
Yup. Możesz stworzyć pomocnika, który używa refleksji i kończy na kruchym kodzie, który jest po prostu * związany *, aby stworzyć problemy w pewnym momencie. Możesz też raz go zasysać i pracować w oknach 20 generacji oferowanych przez IDE. –
To najprostszy sposób, możesz także użyć refleksji: http://stackoverflow.com/questions/1449001/is-there-a-java-reflection-utility-to-do-a-deep-comparison-of-two- obiekty –