2008-10-13 5 views
3

Je suis à la recherche d'un plugin eclipse très spécifique qui me dira si une classe de mon projet n'implémente pas hashCode ou/et équivaut à des méthodes.Erreur sans HashCode, Eclipse

Est-ce que quelqu'un connaît un tel plugin?

Merci

+2

Toutes les classes implémentent equals/hashCode (voir Object). Toutes les classes n'ont pas besoin de remplacer equals/hashCode. Soyez prudent si un objet mutable avec une égalité basée sur son état est haché. Si l'état change alors l'égalité change - très mauvais lors de la récupération d'une carte. –

Répondre

2

Pouvez-vous pas utiliser le Checkstyle plugin et écrire votre propre règle Checkstyle? (Il y a une règle Checkstyle pour des raisons impérieuses égaux mais pas hashCode, mais rien à faire en sorte que les deux sont mis en œuvre pour toutes les classes, AFAIK.)

+0

En fin de compte j'ai utilisé le plugin Checkstyle et j'ai écrit ma propre règle. Je vais le configurer pour qu'il ne me donne pas autant d'informations (je ne veux pas que certaines classes implémentent les deux, etc.). Merci –

+0

Pouvez-vous partager la règle? Cela m'intéresserait aussi ... – mglauche

4

Ou vous pouvez utiliser findbugs

La règle HE_EQUALS_NO_HASHCODE fait ce que vous voulez, et plugin for eclipse

+0

HE_EQUALS_NO_HASHCODE fait-il vraiment ce qui est nécessaire? De la question, on dirait qu'il veut que * chaque * classe implémente equals/hashCode - il ne vérifie pas seulement la présence de l'un et l'absence de l'autre. Il se pourrait que la question ne soit pas bien formulée. –

+0

Si vous avez raison ... Je vote pour la dernière partie de votre commentaire (question "pas bien formulée");) – VonC

+0

J'aurais pensé que le bit 'ou/et' le rendrait assez clair, peut-être seriez-vous plus heureux si il a dit 'et/ou'? Merci pour la réponse si je regarde à la fois le Checkstyle et les findbugs pour voir ce qui est le meilleur. –

Questions connexes