Comment ajouter une référence à un paramètre de méthode dans javadoc?

313

Existe-t-il un moyen d'ajouter des références à un ou plusieurs paramètres d'une méthode à partir du corps de documentation de la méthode? Quelque chose comme:

/**
 * When {@paramref a} is null, we rely on b for the discombobulation.
 *
 * @param a this is one of the parameters
 * @param b another param
 */
void foo(String a, int b)
{...}
ripper234
la source

Réponses:

367

Autant que je sache après avoir lu les documents pour javadoc, il n'y a pas une telle fonctionnalité.

Ne pas utiliser <code>foo</code>comme recommandé dans d'autres réponses; vous pouvez utiliser {@code foo}. C'est particulièrement bon à savoir lorsque vous faites référence à un type générique tel que {@code Iterator<String>}- bien sûr, c'est plus joli que <code>Iterator&lt;String&gt;</code>, n'est-ce pas!

Kevin Bourrillion
la source
@codeLa balise est décrite dans Javadoc - Descriptions des balises . Voir Exemple d'utilisation dans le code JDK8 .
pba
59

Comme vous pouvez le voir dans la source Java de la classe java.lang.String:

/**
 * Allocates a new <code>String</code> that contains characters from
 * a subarray of the character array argument. The <code>offset</code>
 * argument is the index of the first character of the subarray and
 * the <code>count</code> argument specifies the length of the
 * subarray. The contents of the subarray are copied; subsequent
 * modification of the character array does not affect the newly
 * created string.
 *
 * @param      value    array that is the source of characters.
 * @param      offset   the initial offset.
 * @param      count    the length.
 * @exception  IndexOutOfBoundsException  if the <code>offset</code>
 *               and <code>count</code> arguments index characters outside
 *               the bounds of the <code>value</code> array.
 */
public String(char value[], int offset, int count) {
    if (offset < 0) {
        throw new StringIndexOutOfBoundsException(offset);
    }
    if (count < 0) {
        throw new StringIndexOutOfBoundsException(count);
    }
    // Note: offset or count might be near -1>>>1.
    if (offset > value.length - count) {
        throw new StringIndexOutOfBoundsException(offset + count);
    }

    this.value = new char[count];
    this.count = count;
    System.arraycopy(value, offset, this.value, 0, count);
}

Les références de paramètres sont entourées de <code></code>balises, ce qui signifie que la syntaxe Javadoc ne fournit aucun moyen de faire une telle chose. (Je pense que String.class est un bon exemple d'utilisation de javadoc).

Lastnico
la source
5
La balise <code> </code> ne fait pas référence à un paramètre spécifique. Il met en forme le mot "String" en texte "à la recherche de code".
Naxos84
46

La façon correcte de faire référence à un paramètre de méthode est la suivante:

entrez la description de l'image ici

Eurig Jones
la source
2
Cela n'ajoute rien aux réponses existantes. Veuillez le supprimer.
suriv
27
Non seulement il répond à la question, mais il explique visuellement comment modifier Javadoc avec un paramètre à l'aide d'un IDE tel qu'Intellij. Cela sera utile pour les chercheurs qui recherchent une réponse.
Eurig Jones
1
Sur Eclipse, cela ne fonctionne pas. Mais c'est quand même une bonne réponse
Henrique de Sousa
2
cela devrait être supprimé. imaginez n'existe plus.
user4504267
2
@ user4504267 L'image semble bonne, au moins maintenant.
ErikE
11

Je suppose que vous pourriez écrire votre propre doclet ou taglet pour prendre en charge ce comportement.

Présentation du taglet

Présentation de Doclet

gigue
la source
19
Et faites une demande de pull à javadoc :)
Juh_