Ho una classe Java, ecco un esempio:Controllare se due oggetti sono completamente uguali in Java
public class Car {
private int fuelType;
private Date made;
private String name;
.
.
. // and so on
Ora diciamo che ho due oggetti di auto e voglio mettere a confronto se tutte le loro variabili sono uguali .
In questo momento, ho risolto questo metodo con il metodo di priorità equals(Object o)
e controllo se tutte le variabili corrispondono in entrambi gli oggetti.
Il problema qui è che se ho 20 classi, dovrò eseguire l'override di equals(Object o)
in ognuna di esse.
C'è un modo per creare una sorta di metodo universale che possa confrontare uno dei due oggetti che ho passato e farmi sapere se corrispondono a ogni singola variabile o no?
se si utilizza eclipse tasto destro del mouse -> origine-> genera uguali e hash. gli uguali generati si confronteranno usando qualunque sia il campo con cui lo si imposta. a proposito, sì, questo è il metodo std 'Object.equals (Object other)'. – eduyayo
Sì. Puoi creare un helper che usa un po 'di riflessione e finire con un codice fragile che è * limitato * a creare problemi ad un certo punto. Oppure puoi risucchiarlo una volta e utilizzare le finestre di 20 generazione offerte dal tuo IDE. –
Questo è il modo più semplice, è anche possibile utilizzare la riflessione: http://stackoverflow.com/questions/1449001/is-there-a-java-reflection-utility-to-do-a-deep-comparison-of-two- oggetti –