Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Das kommt ganz darauf an, wann du zwei Objekte als "gleich" betrachtest.Muss ich da tatsächlich jeden einzelnen Wert mit dem Wert des anderen Objekts vergleichen ?
Ich habe es "schon fast esoterisch" genannt weil es das ist, so wie @kneitzel sagt kann es um ein vielfaches komplizierter werden als die equals einfach zu schreiben. Wenn du nicht gerade 500 Datenklassen hast, wuerde ich auch dazu raten "equals" einfach zu tippen, es ist einfach simpler und besser zu warten.Ich habe auch schon darüber nachgedacht diese Klasse selber zu schreiben, weiß aber nicht wie ich bei beliebigen Klassen die Members auslesen kann und dann die Datentypen für den Vergleich ermitteln kann.
for (Field field : getClass().getDeclaredFields()) {
if (!Objects.equals(field.invoke(this), field.invoke(otherInstance)) {
return false;
}
}
return true;
Da einfach auch nur die Anmerkung: Die meisten IDEs generieren die auch. Getter / Setter / hashcode / equals / .... - das wird einfach generiert.wuerde ich auch dazu raten "equals" einfach zu tippen,