TEH signifie ToString Equals HashCode
Design
Ce framework utilise les annotations pour implementer toString, equals et hashCode
Par design, il force ces 2 règles
- Tout attribut utilisé pour equals sera utilisé pour toString
- Tout attribut utilisé pour hashCode sera utilisé pour equals (et toString)
Utilisation
Les 4 annotations sont
@TEH
@ToString
@ToStringEquals
@ToStringEqualsHashCode
Les 3 annotations ToString* se placent directement sur les attributs
On peut activer les annotations sur une classe de 2 manières :
- Etendre TEHObject
- Surcharger les 3 méthodes en utilisant TEHUtils et ajouter @TEH sur la classe
Approche
TEH ne force pas à utiliser des getter/setter
Les règles sont faites pour faciliter les activités de dévelopement comme le test et le log:
Si dans un test JUnit l'on compare des objets avec assertEquals, le message de failure utilise toString. Il faut que ce message aide à trouver les différences.
hashCode etant une methode utilisée pour de l'optimisation, principalement dans certaines structures de donnée comme les hashMap, si deux objets sont égaux ils doivent renvoyer le même hashCode.
http://download.oracle.com/javase/6/docs/api/java/lang/Object.html#hashCode()
Le projet sous github
Comme on dit : "Fork me!"
Aucun commentaire:
Enregistrer un commentaire
Feedback...