Je crois avoir lu quelque part des personnes générant des méthodes equals/hashcode/toString pendant la compilation (en utilisant APT) en identifiant les champs qui devraient faire partie du test de hachage/égalité. Je ne pouvais pas trouver quelque chose comme ça sur le web (je pourrais avoir rêvé?) ...Générer equals/hashcode/toString en utilisant l'annotation
Cela pourrait se faire comme ça:
public class Person {
@Id @GeneratedValue private Integer id;
@Identity private String firstName, lastName;
@Identity private Date dateOfBirth;
//...
}
Pour une entité (si nous voulons certains à exclure Effectuer champs, comme l'ID).
Ou comme une classe de cas scala-à-dire un objet de valeur:
@ValueObject
public class Color {
private int red, green, blue;
}
Non seulement le fichier devient plus lisible et plus facile à écrire, mais il contribue également à faire en sorte que tous les attributs font partie des Egaux/hashcode (au cas où vous ajouteriez un autre attribut plus tard, sans mettre à jour les méthodes en conséquence). J'ai entendu APT n'est pas très bien pris en charge dans IDE mais je ne verrais pas cela comme un problème majeur. Après tout, les tests sont principalement effectués par des serveurs d'intégration continue.
Une idée si cela a déjà été fait et sinon pourquoi? Merci
Approche intéressante. Je me demande quel est l'impact sur les performances. –