2009-11-03 4 views
247

Gibt es eine Möglichkeit, Referenzen zu einem oder mehreren Parametern einer Methode aus dem Hauptteil der Methodendokumentation hinzuzufügen? Etwas wie:Wie füge ich einen Bezug zu einem Methodenparameter in Javadoc hinzu?

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

Antwort

290

Soweit ich nach dem Lesen the docs for javadoc sagen kann, gibt es keine solche Funktion.

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

8

Ich denke, Sie Ihre eigenen doclet oder taglet schreiben könnte dieses Verhalten zu unterstützen.

Taglet Overview

Doclet Overview

+13

und eine Pull-Anforderung zu javadoc machen :) –

53

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

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

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

+22

Das alte ist. Die Zeichenfolge ist mit {@code foo} dokumentiert. –

+2

Das Tag verweist nicht auf einen bestimmten Parameter. Es formatiert das Wort "String" in "code looking" Text. – Naxos84

10

Der korrekte Weg, ein Verfahren Parameter bezieht, ist wie folgt:

enter image description here

+0

Dies fügt den vorhandenen Antworten nichts hinzu. Bitte lösche es. – suriv

+7

Es beantwortet nicht nur die Frage, aber es erklärt visuell, wie man Javadoc mit einem Parameter unter Verwendung einer IDE wie Intellij ändert. Dies ist nützlich für Suchende, die nach einer Antwort suchen. –

+0

Auf Eclipse funktioniert es nicht. Aber es ist trotzdem eine nette Antwort –