J'ai copier/coller la méthode equals() de la FAQ JAVA et je ne comprends pas bien quelque chose.
le premier "if" de la méthode vérifie si la référence des 2 objets et si elle sont égales et return true...mais le fait de retourner true nous fait sortir de la méthode il me semble
et donc on n'a vérifié uniquement les références... quand est-il de l'objet lui même avec ses attributs etc ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 class TestClass { private int attribut1; private String attribut2; private boolean visible; // Attribut non-représentatif et donc ignoré @Override public boolean equals(Object obj) { // Vérification de l'égalité des références if (obj==this) { return true; } // Vérification du type du paramètre if (obj instanceof TestClass) { // Vérification des valeurs des attributs TestClass other = (TestClass) obj; // Pour les attributs de type primitif // on compare directement les valeurs : if (this.attribut1 != other.attribut1) { return false; // les attributs sont différents } // Pour les attributs de type objets // on compare dans un premier temps les références if (this.attribut2 != other.attribut2) { // Si les références ne sont pas identiques // on doit en plus utiliser equals() if (this.attribut2 == null || !this.attribut2.equals(other.attribut2)) { return false; // les attributs sont différents } } // Si on arrive ici c'est que tous les attributs sont égaux : return true; } return false; } }
Partager