Apache commons-lang dispose d'un constructeur automatique d'égalités - par exemple "reflection-equals". Documentation de l'API pour EqualsBilder
. Notez également qu'il existe un HashCodeBuilder
dans la même bibliothèque.
Exemple d'utilisation de cette bibliothèque :
static class A {
private int a;
private String b;
A(int a, String b) {
this.a = a;
this.b = b;
}
}
public static void main(String[] args) {
A a1 = new A(123, "Hello World!");
A a2 = new A(321, "Hello!");
A a3 = new A(123, "Hello World!");
System.out.println(EqualsBuilder.reflectionEquals(a1, a2, true));
System.out.println(EqualsBuilder.reflectionEquals(a1, a3, true));
}
Sortie :
false
true