Comment générer automatiquement des commentaires pour getter / setter basé sur les commentaires de terrain dans Eclipse?

Je veux Qu'Eclipse génère automatiquement des commentaires Javadoc pour mes méthodes getter et setter basées sur les commentaires définis précédemment pour les champs. Comment puis-je y parvenir?

Background: une politique dans notre société est de commenter chaque méthode et domaine (même si elles ont des noms explicites). Je dois donc faire un travail redondant en décrivant les champs et en décrivant à nouveau les getters / setters.

exemple:

/**
 * name of the dynamic strategy
 */
private String dynName;

/**
 * get the name of the dynamic strategy
 * @return
 */
public String getDynName() {
    return dynName;
}

la recherche sur le web a montré que je ne suis pas le seul avec le problème - mais je n'ai pas pu trouver de solutions. J'ai vérifié http://jautodoc.sourceforge.net/ , mais semble comme il n'est pas capable de le faire.

25
demandé sur räph 2009-06-15 17:23:17

9 réponses

JAutodoc étant donné que le ver 1.6 (1 an après la question) a une nouvelle option "[G,S]etter champ de commentaire", qui fait exactement ce que vous voulez.

C'est une fonctionnalité très pratique. Les commentaires de terrain ne sont généralement pas inclus dans la version finale de Javadoc HTML parce qu'ils pourraient/devraient être des membres privés (générer Javadoc pour chaque membre privé n'est pas bon non plus), donc les commentaires seraient complètement perdus sans elle!

je me demande si ce fil Q / A pourrait ont motivé l'auteur à mettre en œuvre cette fonctionnalité intéressante.

13
répondu hideaki 2011-11-15 22:54:53

j'ai finalement trouvé une solution (ou au moins une solution de contournement) moi-même. J'ai lu à propos de Spoon sur SO. C'est un programme Java qui permet de lire et de modifier des fichiers source java. Il peut même être utilisé comme Plugin Eclipse ou script Ant/Maven.

Tout ce que vous avez à faire, c'est d'étendre leprocesseur abstrait, qui traitera une méthode. Si le nom de la méthode commence par get / set il recherche le champ correspondant, extrait son commentaire et remplace ou étend les accesseurs commentaire.

j'ai un petit script ant, qui prend toutes mes sources et des processus.

quelque chose d'intégré dans les modèles de code eclipses serait bien sûr plus pratique, mais pour l'instant cette façon est ok!

5
répondu räph 2009-07-01 12:33:11

si vous utilisez L'outil D'Eclipse pour outrepasser/implémenter des méthodes... dans le menu source, il y a une option pour générer automatiquement des commentaires javadoc. il y a des modèles de commentaires que vous pouvez modifier dans Préférences->java->code style -> code templates -> comments.

3
répondu akf 2009-06-15 13:32:54

je conviens que la duplication de la documentation est un problème. Qu'en est-il de documenter la variable privée et ensuite de fournir un lien vers cette documentation dans les méthodes accessor?



(Évidemment, la solution suivante est pour très simple accessor méthodes . Vous ne voulez pas vraiment exposer la documentation des variables privées dans votre API, surtout si votre méthode accessor fait quelque chose de remarquable.)

public class MyBean {

/**
 * The names description
 */
private String name;

/**
 * @return {@link #name}
 */
public String getName() {
    return name;
}

/**
 * @param name {@link #name}
 */
public void setName(String name) {
    this.name = name;
}
}

notez que, si vous utilisez Eclipse, vous pourriez avoir besoin d'activer référencement de variables privées dans votre javadoc comme suit::

  • faites un clic droit sur le projet dans L'Explorateur de paquets et sélectionnez propriétés
  • Effondrement Compilateur Java nœud et sélectionnez Javadoc
  • , Sélectionnez activer projet spécifique les paramètres et sous ne considèrent les membres visibles que comme: sélectionnez privé

    je pense que la performance de recherche sera affectée, mais je n'ai pas encore utilisé testé par combien.

  • 3
    répondu Stephen Paul 2013-02-05 11:29:18

    si vous aviez un langage macro, vous pourriez écrire une fonction comme"ouvrir un popup qui me permet de taper du texte, puis génère le getter et le setter, y compris son javadoc, basé sur des modèles".

    Eclipse n'a en fait aucun support réel pour un tel langage macro, mais peut-être que vous pourriez quand même jeter un oeil à : y a-t-il un enregistreur Macro pour Eclipse?

    si vous n'êtes pas réticents à passer d'une éclipse à une autre outil, alors vous pouvez essayer JEdit (jedit.org) qui inclut un puissant langage macro beanshell. De cette façon, vous pouvez avoir eclipse & jedit ouvert, vous faites glisser&déposer le fichier que vous voulez traiter de eclipse à jedit, vous utilisez la puissance de macro jedit, puis enregistrez le fichier et enfin rafraîchir le fichier dans eclipse.

    C'est un peu ennuyeux, mais pour certains traitements, c'est la façon dont j'ai réussi à adopter.

    2
    répondu Michael Zilbermann 2017-05-23 10:29:44

    Le JavadocWriter plugin pour IntelliJ IDEA dit qu'il fait une "smart copie de la javadoc, du champ à l'accesseur". Caveat utilitor: Je n'ai pas essayé le plugin moi-même, et il n'a pas été mis à jour depuis 3 ans.

    1
    répondu flicken 2009-06-15 14:32:06

    IMHO si les commentaires peuvent être générés automatiquement, ils n'ajoutent pas beaucoup de valeur.

    Si vous avez appelé votre méthode getDynamicStrategyName (), vous n'aurez pas besoin de la commenter car le nom contient toutes les informations que vous auriez pu mettre dans le commentaire.

    1
    répondu Peter Lawrey 2009-06-16 20:34:39

    J'utilise Eclipse Luna 4.4.

    • choisir menu Window \ Preferences , choisir Java \ Code Style \ Code Templates . Choisir la Section Comments \ Getters | Setters , appuyez sur le bouton Edit... .



    enter image description here

    • Il ya beaucoup variables existantes pour vous, Bouton d'utilisation Insert Variable...



      enter image description here

    • modifiez votre format de commentaire, puis appuyez sur le bouton Apply , puis appuyez sur OK pour terminer.

    1
    répondu Do Nhu Vy 2015-05-17 01:34:48

    en fait JAutodoc peut générer des commentaires pour getter/setter basé sur les commentaires de terrain. Vous devez cocher l'option "Créer un commentaire à partir du nom de l'élément", voir http://jautodoc.sourceforge.net / for documentation.

    0
    répondu pawelsto 2011-07-25 07:28:19