Commentaires de documentation Java : Maîtriser Javadoc et types de commentaires
Java prend en charge trois types de commentaires :
| N° | Commentaire et description |
|---|---|
| 1 | /* texte */ - Commentaire multi-lignes. Le compilateur ignore tout entre /* et */. |
| 2 | // texte - Commentaire mono-ligne. Le compilateur ignore tout de // à la fin de ligne. |
| 3 | /** documentation */ - Commentaire de documentation (doc comment). L'outil JDK javadoc les utilise pour générer automatiquement la documentation. |
Ce chapitre explique Javadoc et comment l'utiliser pour générer une documentation utile à partir du code source Java.
Qu'est-ce que Javadoc ?
Javadoc est un outil fourni avec le JDK qui génère de la documentation HTML à partir du code source Java, à condition que celui-ci contienne des commentaires dans un format prédéfini.
Exemple basique
/**
* Le programme HelloWorld affiche simplement "Hello World!" sur la sortie standard.
*
* @author Zara Ali
* @version 1.0
* @since 2014-03-31
*/
public class HelloWorld {
public static void main(String[] args) {
// Affiche Hello, World! sur la sortie standard.
System.out.println("Hello World!");
}
}
Vous pouvez inclure des balises HTML dans la description :
Exemple avec HTML
/**
* <h1>Hello, World!</h1>
* Le programme HelloWorld implémente une application qui
* affiche simplement "Hello World!" sur la sortie standard.
* <p>
* Des commentaires appropriés rendent le code plus
* convivial et sont le signe d'un code de haute qualité.
*
* @author Zara Ali
* @version 1.0
* @since 2014-03-31
*/
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Les balises Javadoc
L'outil javadoc reconnaît les balises suivantes :
| Balise | Description | Syntaxe |
|---|---|---|
| @author | Auteur d'une classe | @author nom |
| {@code} | Affiche du texte en police code sans interpréter HTML ni balises Javadoc imbriquées | {@code texte} |
| {@docRoot} | Chemin relatif vers la racine de la documentation générée | {@docRoot} |
| @deprecated | Indique qu'une API ne doit plus être utilisée | @deprecated texte |
| @exception | Ajoute une section "Throws" avec nom de classe et description | @exception classe description |
| {@inheritDoc} | Hérite un commentaire de la classe parente la plus proche | {@inheritDoc} |
| {@link} | Insère un lien en ligne vers la doc d'un package, classe ou membre | {@link package.classe#membre label} |
| {@linkplain} | Identique à {@link} mais le label s'affiche en texte normal | {@linkplain package.classe#membre label} |
| @param | Ajoute un paramètre à la section "Paramètres" | @param nom-param description |
| @return | Ajoute une section "Retourne" avec description | @return description |
| @see | Ajoute un titre "Voir aussi" avec lien ou texte | @see référence |
| @serial | Utilisé pour un champ sérialisable par défaut | @serial description | include | exclude |
| @serialData | Documente les données écrites par writeObject() ou writeExternal() | @serialData description |
| @serialField | Documente un composant ObjectStreamField | @serialField nom type description |
| @since | Ajoute un titre "Depuis" avec la version | @since version |
| @throws | Synonyme de @exception | @throws classe description |
| {@value} | Affiche la valeur d'une constante statique | {@value package.classe#champ} |
| @version | Ajoute un sous-titre "Version" (avec option -version) | @version texte-version |
Exemple complet
Ce programme utilise plusieurs balises importantes. La documentation de la classe AddNum sera produite dans AddNum.html, et un fichier maître index.html sera aussi créé.
import java.io.*;
/**
* <h1>Addition de deux nombres !</h1>
* Le programme AddNum additionne deux entiers donnés et affiche
* le résultat à l'écran.
* <p>
* <b>Note :</b> Des commentaires appropriés rendent le programme plus
* convivial et sont le signe d'un code de haute qualité.
*
* @author Zara Ali
* @version 1.0
* @since 2014-03-31
*/
public class AddNum {
/**
* Cette méthode additionne deux entiers. C'est la forme la plus simple
* d'une méthode de classe, juste pour montrer l'usage des balises Javadoc.
* @param numA Premier paramètre de la méthode addNum
* @param numB Second paramètre de la méthode addNum
* @return int Somme de numA et numB
*/
public int addNum(int numA, int numB) {
return numA + numB;
}
/**
* Méthode principale utilisant addNum.
* @param args Inutilisé.
* @return Rien.
* @exception IOException En cas d'erreur d'entrée.
* @see IOException
*/
public static void main(String[] args) throws IOException {
AddNum obj = new AddNum();
int sum = obj.addNum(10, 20);
System.out.println("Somme de 10 et 20 est : " + sum);
}
}
Traitez le fichier avec javadoc :
$ javadoc AddNum.java Loading source file AddNum.java... Constructing Javadoc information... Standard Doclet version 1.7.0_51 Building tree for all the packages and classes... Generating /AddNum.html... AddNum.java:36: warning - @return tag cannot be used in method with void return type. Generating /package-frame.html... Generating /package-summary.html... Generating /package-tree.html... Generating /constant-values.html... Building index for all the packages and classes... Generating /overview-tree.html... Generating /index-all.html... Generating /deprecated-list.html... Building index for all classes... Generating /allclasses-frame.html... Generating /allclasses-noframe.html... Generating /index.html... Generating /help-doc.html... 1 warning
Consultez la documentation générée. Avec JDK 1.7, le stylesheet.css par défaut est basique ; téléchargez la version standard depuis Oracle.
Java
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Commentaires Java : Types, utilisation et bonnes pratiques
- Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
- Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques
- Assertions Java : guide pratique pour détecter les bugs et assurer la fiabilité du code