605 votes

Plusieurs exemple de code de ligne en commentaire Javadoc

J’ai un petit exemple que je veux inclure dans le commentaire Javadoc pour une méthode.

Le problème, c’est que l’exemple de code se présente dans la Javadoc avec sans saut de ligne, rendant difficile à lire.

Je suppose que je me trompe en assumant que la balise code traiterait les sauts de ligne. Quelle est la meilleure façon pour mettre en forme les exemples de code dans les commentaires Javadoc ?

843voto

Fabian Steeg Points 24261

Outre le déjà mentionné tags, vous devez également utiliser le JavaDoc annotation, qui rendra la vie beaucoup plus facile quand il s’agit de questions d’entités HTML (en particulier avec les médicaments génériques), par exemple :

Donnera une sortie HTML correcte :

En omettant le bloc (ou en utilisant un tag) se traduira en HTML comme ceci :

185voto

Christoph Naber Points 351

J'ai eu un moment difficile avec notamment un exemple de code spécifique dans un commentaire javadoc. J'aimerais partager cette.
Veuillez noter les points suivants:

  • l'utilisation de vieux - <code> - tag pour éviter les accolades d'être interprété
  • l'utilisation de la "nouvelle" {@code ...} - tag pour obtenir les génériques inclus dans la sortie
  • s'échapper du signe @ en @Override via "{@literal @}Override" parce que javadoc générateur "s'incline" il dû au fait que le @ se place directement après une ouverture accolade

javadoc code:

/** this methods adds a specific translator from one type to another type. `
  * i.e.
  * <pre>
  * <code>new BeanTranslator.Builder()
  *   .translate(
  *     new Translator{@code <String, Integer>}(String.class, Integer.class){
  *       {@literal @}Override
  *       public Integer translate(String instance) {
  *         return Integer.valueOf(instance);
  *       }})
  *   .build();
  * </code>
  * </pre>
  * @param translator
  */

est imprimé en tant que

new BeanTranslator.Builder()
  .translate(
    new Translator<String, Integer>(String.class, Integer.class){
      @Override
      public Integer translate(String instance) {
        return Integer.valueOf(instance);
      }})
  .build();

41voto

Steve B. Points 23227

La source de java a beaucoup de bons exemples pour cela. Voici un exemple de la tête de « String.java » :

25voto

Zach Scrivena Points 15052

Placez votre code multiligne avec `` balises.

19voto

Roel van Dun Points 61

Vous avez besoin de l' <pre></pre> balises pour les sauts de ligne, et l' {@code ... } à l'intérieur d'eux pour les génériques. Mais alors il n'est pas autorisé à placer l'accolade d'ouverture sur la même ligne que l' <generic> balise, car alors tout sera affiché sur la 1 ligne de nouveau.

Affiche sur une seule ligne:

* ..
* <pre>
* {@code
* public List<Object> getObjects() {
*    return objects;
* }
* </pre>
* ..

Affiche avec des sauts de ligne:

* ..
* <pre>
* {@code
* public List<Object> getObjects() 
* {
*    return objects;
* }
* </pre>
* ..

Une autre chose bizarre, c'est quand vous collez l'accolade de fermeture de l' {@code, il s'affiche:

* ..
* <pre>
* {@code
*   public List<Object> getObjects() 
*   {
*     return objects;
*   }
* }
* </pre>
* ..

Sortie:

public List<Object> getObjects() 
{
   return objects;
}
}

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