J'ai un petit exemple de code que je veux inclure dans le commentaire Javadoc pour une méthode.
/**
* -- ex: looping through List of Map objects --
* <code>
* for (int i = 0; i < list.size(); i++) {
* Map map = (Map)list.get(i);
* System.out.println(map.get("wordID"));
* System.out.println(map.get("word"));
* }
* </code>
*
* @param query - select statement
* @return List of Map objects
*/
Le problème est que l'exemple de code apparaît dans le Javadoc sans saut de ligne, ce qui le rend difficile à lire.
-- ex: looping through List of Map objects -- for (int i = 0; i list.size(); i++) { Map map = (Map)list.get(i); System.out.println(map.get("wordID")); System.out.println(map.get("word")); }
Parameters
query - - select statement
Returns:
List of Map objects
Je suppose que je me trompe en supposant que la balise de code gérerait les sauts de ligne. Quelle est la meilleure façon de formater des exemples de code dans les commentaires Javadoc?
J'ai eu beaucoup de mal à inclure un exemple de code spécifique dans un commentaire javadoc. J'aimerais partager celui-ci.
Veuillez noter ce qui suit:
<code>
balise pour empêcher l'interprétation des accolades{@code ...}
balise "new" pour obtenir les génériques inclus dans la sortie@Override
via "{@literal @}Override
" car le générateur javadoc "s'incline" car le @ va directement après une accolade ouvrante{@code
et{@literal
, pour compenser les espaces intérieurs et garder l'alignementcode javadoc:
est imprimé en tant que
la source
La source java a beaucoup de bons exemples pour cela. Voici un exemple de la tête de "String.java":
la source
<pre><blockquote>...</blockquote></pre>
<p><blockquote><pre>
</pre></blockquote></p>
List<String>
. Pour cela, j'utilise<pre>{@code ... }</pre>
.Joignez votre code multiligne avec des
<pre></pre>
balises.la source
Vous avez besoin des
<pre></pre>
balises pour les sauts de ligne et de l'{@code ... }
intérieur pour les génériques. Mais alors il n'est pas permis de placer l'accolade d'ouverture sur la même ligne que la<generic>
balise, car alors tout sera à nouveau affiché sur 1 ligne.Affiche sur une seule ligne:
Affiche avec des sauts de ligne:
Une autre chose étrange est que lorsque vous collez l'accolade de fermeture de
{@code
, elle s'affiche:Production:
la source
...
``). Vous n'avez pas besoin<code>
et les<pre>
mots clés. J'ai édité votre réponse dans cet esprit.<pre/>
est nécessaire pour conserver les lignes.{@code
doit avoir sa propre ligne<blockquote/>
est juste pour l'indentation.MISE À JOUR avec JDK8
Les exigences minimales pour les codes appropriés sont
<pre/>
et{@code}
.les rendements
Et un entourage optionnel
<blockquote/>
insère une indentation.les rendements
Insérer
<p>
ou entourer avec<p>
et</p>
donne des avertissements.la source
J'ai pu générer de beaux fichiers HTML avec le snip-it suivant montré dans le code 1.
(Code 1)
Le code 1 s'est transformé en la page HTML javadoc générée dans la figure 1, comme prévu.
(Fig. 1)
Cependant, dans NetBeans 7.2, si vous appuyez sur Alt + Maj + F (pour reformater le fichier actuel), le code 1 se transforme en code 2.
(Code 2)
où le premier
<pre>
est maintenant divisé en deux lignes. Le code 2 produit un fichier HTML javadoc généré, comme illustré à la figure 2.(Fig 2)
La suggestion de Steve B (Code 3) semble donner les meilleurs résultats et reste formatée comme prévu même après avoir appuyé sur Alt + Maj + F.
(Code 3)
L'utilisation du code 3 produit la même sortie HTML javadoc comme indiqué sur la figure 1.
la source
Voici mes deux cents.
Comme les autres réponses l'indiquent déjà, vous devez l'utiliser
<pre>
</pre>
en conjonction avec{@code
}
.Utiliser
pre
et{@code}
<pre>
et</pre>
empêche votre code de s'effondrer sur une seule ligne;{@code
}
empêche<
,>
et tout le reste de disparaître. Ceci est particulièrement utile lorsque votre code contient des expressions génériques ou lambda.Problèmes avec les annotations
Des problèmes peuvent survenir lorsque votre bloc de code contient une annotation. C'est probablement parce que lorsque le
@
signe apparaît au début de la ligne Javadoc, il est considéré comme une balise Javadoc comme@param
ou@return
. Par exemple, ce code peut être mal analysé:Le code ci-dessus disparaîtra complètement dans mon cas.
Pour résoudre ce problème, la ligne ne doit pas commencer par un
@
signe:Notez qu'il y a deux espaces entre
@code
et@Override
, pour garder les choses alignées avec les lignes suivantes. Dans mon cas (en utilisant Apache Netbeans), il est rendu correctement.la source
Il existe une différence significative entre
<blockquote><pre>...
et<pre>{@code....
La première omettra les déclarations de type dans les génériques, mais la seconde les conservera.E.g.: List<MyClass> myObject = null;
affiche commeList myObject = null;
avec les premiers et commeList<MyClass> myObject = null;
avec le secondla source
Si vous êtes développeur Android, vous pouvez utiliser:
Pour imprimer votre code en Javadoc avec du code Java.
la source
Essayez de remplacer "code" par "pré". La balise pré en HTML marque le texte comme étant préformaté et tous les sauts de ligne et les espaces apparaîtront exactement comme vous les tapez.
la source
Je viens de lire la référence Javadoc 1.5 ici , et seul le code avec
<
et>
doit être inclus à l'intérieur{@code ...}
. Voici un exemple simple:la source
J'inclus mon exemple de code avec des
<pre class="brush: java"></pre>
balises et j'utilise SyntaxHighlighter pour les javadocs publiés. Cela ne nuit pas à l'IDE et rend les exemples de code publiés magnifiques.la source
En utilisant Java SE 1.6, il semble que tous les identifiants UPPERCASE PRE soient le meilleur moyen de le faire dans Javadoc:
est le moyen le plus simple de le faire.
Un exemple d'un javadoc que j'ai obtenu d'une méthode java.awt.Event:
Cela produit une sortie qui ressemble exactement au code normal, avec les espacements de code réguliers et les nouvelles lignes intacts.
la source
Dans Visual Studio Code au moins, vous pouvez forcer un commentaire Javadoc à respecter les sauts de ligne en les encapsulant dans des triplets, comme indiqué ci-dessous:
la source