41 votes

Quand est-il souhaitable de ne pas implémenter toString () en Java?

Un développeur principal de mon projet a pris en se référant au projet de toString() implémentations de "pure trucs" et est à la recherche pour les supprimer de la base de code.

J'ai dit que cela voudrait dire que tous les clients qui souhaitent afficher les objets qui aurait pour écrire leur propre code pour convertir l'objet à la chaîne, mais qui a répondu "oui, ils le feraient".

Maintenant plus précisément, les objets de ce système sont des éléments graphiques comme des rectangles, des cercles, etc et la représentation actuelle est d'afficher x, y, échelle, les limites, etc...

Alors, où la foule mensonge?

Quand et quand ne pas mettre en œuvre toString?

68voto

djna Points 34761

Quel mal font-ils? Pourquoi les enlever si vous les avez? Je trouve toString () extrêmement utile lors de l’émission d’instructions de débogage.

Personnellement, je préférerais toujours avoir une méthode toString () utilisable. Donc, peu de travail à écrire.

35voto

jsight Points 16025

Supprimer des méthodes toString () bien écrites (ou même à moitié décentes) est une pure folie, IMO. Oui, je suis souvent trop paresseux pour les écrire (car souvent, les objets ne finissent pas par les avoir utilisés), mais ils sont extrêmement pratiques.

Je ne peux vraiment pas penser à une bonne raison de vouloir s'en débarrasser.

18voto

z - Points 5610

Je me suis toujours assuré que mes classes implémentaient toString.

Il fournit un moyen simple de déboguer l’état actuel de la classe lorsque je débogue et que je consigne des erreurs, je peux l’inclure dans mes messages de journal.

15voto

jjnguy Points 62123

Je garderais les implémentations toString() . Ils sont d’une valeur inestimable pour le débogage et peuvent produire un bon texte alternatif pour les composants graphiques.

12voto

Mike C. Points 440

Je dirais au contraire que toString () devrait être écrasé judicieusement. L'implémentation par défaut de toString () est très peu informative et fondamentalement inutile. Une bonne implémentation toString () peut donner au développeur une vue très utile du contenu de l'objet en un coup d'œil. Vous n’avez peut-être pas à tout mettre là-dedans, mais au moins l’essentiel. Je pense que votre développeur principal devrait en fait coder et ajouter des fonctionnalités plutôt que de s’inquiéter de "cruft".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X