Les mauvaises pratiques de Classe définit compareTo(...) et utilise l'Objet.equals()
Se demander ce qui doit être fait pour répertoriés méthode
public final int compareTo(final FieldDTO o) {
return o.available.compareTo(this.available);
son lancement exception à la ligne 2, en indiquant
Les mauvaises pratiques de Classe définit compareTo(...) et utilise l'Objet.equals() 16 jours
champ définit compareTo(FieldDTO) et utilise l'Objet.equals()
Pas sûr de savoir comment dois-je gérer cela.
Merci à l'avance.
Il est vraiment lancer une Exception? Ou est-ce juste un avertissement (peut-être par findBugs)?
FieldDTO semble être une classe interne de votre projet, poser cette question qui l'a créé.
FieldDTO semble être une classe interne de votre projet, poser cette question qui l'a créé.
OriginalL'auteur Maulzey | 2013-05-22
Vous devez vous connecter pour publier un commentaire.
Si vous définissez
compareTo
vous devriez au moins définirequals
sinon vous aurez des problèmes étranges lorsque vous mettez votre objet en
Map
s etSet
s. Il est généralement une bonne pratique également définirhashCode
.OriginalL'auteur OldCurmudgeon
C'est la documentation de FindBugs:
Il semble donc que vous avez besoin pour mettre en œuvre les
equals
méthode de ce qui annule le défaut de mise en œuvre deObject
.OriginalL'auteur Ziyao Wei
vous avez besoin pour remplacer la classe d'Objet equals() et hashCode() méthodes.
L'utilisation de l'IDE code généré pour ces derniers, il va tirer tous les attributs d'un Objet et crée méthode pour vous.
Sur eclipse IDE:
OriginalL'auteur Raj Pandiri
Votre classe, comme il semble, met en œuvre la
Comparable
interface.Javadoc sont strictes: si vous utilisez votre propre
compareTo()
méthode, elle doit retourner une 0 uniquement si leequals()
méthode renvoie vrai.Donc:
Oui, c'est pourquoi je upvoted le premier commentaire, je pense que ça devrait être un avertissement à la place.
OriginalL'auteur aran