Wie füge ich einen Verweis auf einen Methodenparameter in Javadoc hinzu?

313

Gibt es eine Möglichkeit, Verweise auf einen oder mehrere Parameter einer Methode aus dem Methodendokumentationstext hinzuzufügen? Etwas wie:

/**
 * 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
quelle

Antworten:

367

Soweit ich nach dem Lesen der Dokumente für Javadoc feststellen kann, gibt es keine solche Funktion.

Nicht <code>foo</code>wie in anderen Antworten empfohlen verwenden. Sie können verwenden {@code foo}. Dies ist besonders gut zu wissen, wenn Sie sich auf einen generischen Typ beziehen wie {@code Iterator<String>}- sieht sicher besser aus als <code>Iterator&lt;String&gt;</code>, nicht wahr?

Kevin Bourrillion
quelle
59

Wie Sie in der Java-Quelle der Klasse java.lang.String sehen können:

/**
 * 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);
}

Parameterreferenzen sind von <code></code>Tags umgeben, was bedeutet, dass die Javadoc-Syntax keine Möglichkeit bietet, so etwas zu tun. (Ich denke, String.class ist ein gutes Beispiel für die Verwendung von Javadoc).

Lastnico
quelle
5
Das <code> </ code> -Tag verweist nicht auf einen bestimmten Parameter. Es formatiert das Wort "String" in "Code aussehenden" Text.
Naxos84
46

Die korrekte Art, auf einen Methodenparameter zu verweisen, lautet wie folgt:

Geben Sie hier die Bildbeschreibung ein

Eurig Jones
quelle
2
Dies fügt den vorhandenen Antworten nichts hinzu. Bitte lösche es.
Suriv
27
Es beantwortet nicht nur die Frage, sondern erklärt auch visuell, wie Javadoc mit einem Parameter unter Verwendung einer IDE wie Intellij geändert wird. Dies ist nützlich für Suchende, die nach einer Antwort suchen.
Eurig Jones
1
Auf Eclipse funktioniert es nicht. Aber es ist trotzdem eine schöne Antwort
Henrique de Sousa
2
Dies sollte gelöscht werden. stell dir vor, es existiert nicht mehr.
user4504267
2
@ user4504267 Das Bild sieht zumindest jetzt gut aus.
ErikE
11

Ich denke, Sie könnten Ihr eigenes Doclet oder Taglet schreiben, um dieses Verhalten zu unterstützen.

Taglet-Übersicht

Doclet-Übersicht

Jitter
quelle
19
Und machen Sie eine Pull-Anfrage an Javadoc :)
Juh_