Bonjour,
J’ai une classe "Ville". J’ai défini à la main moi-même tout seul la méthode "equal". Voila le résultat :
J’ai ensuite demandé à Eclipse de définir la méthode automatiquement. Voilà le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public boolean equal(Ville o) { if(this.nomVille!=o.nomVille) return false; if(this.nbHabitants!=o.nbHabitants) return false; if(this.nomPays!=o.nomPays) return false; return true; }
J’ai un peu du mal à comprendre...
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 public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Ville other = (Ville) obj; if (nbHabitants != other.nbHabitants) return false; if (nomPays == null) { if (other.nomPays != null) return false; } else { if (!nomPays.equals(other.nomPays)) return false; } if (nomVille == null) { if (other.nomVille != null) return false; } else { if (!nomVille.equals(other.nomVille)) return false; } return true; }
Ligne 3 : obj==null : pourquoi retourner false ? Si mon objet this est null, et que obj est null, alors je devrais retourner true, non ?
Christophe
Partager