javadoc example




Come fare riferimento a un metodo in javadoc? (2)

Come posso usare il tag @link per collegarmi a un metodo?

voglio cambiare

/**
 * Returns the Baz object owned by the Bar object owned by Foo owned by this.
 * A convenience method, equivalent to getFoo().getBar().getBaz()
 * @return baz
 */
public Baz fooBarBaz()

a

/**
 * Returns the Baz object owned by the Bar object owned by Foo owned by this.
 * A convenience method, equivalent to {@link getFoo()}.{@link getBar()}.{@link getBaz()}
 * @return baz
 */
public Baz fooBarBaz()

ma non so come formattare correttamente il tag @link .


Il formato generale, dalla sezione @link della documentazione di javadoc , è:

Esempi

Metodo nella stessa classe:

/** See also {@link #myMethod(String)}. */
void foo() { ... }

Metodo in una classe diversa, nello stesso pacchetto o importato:

/** See also {@link MyOtherClass#myMethod(String)}. */
void foo() { ... }

Metodo in un pacchetto diverso e non importato:

/** See also {@link com.mypackage.YetAnotherClass#myMethod(String)}. */
void foo() { ... }

Etichetta collegata al metodo, in testo semplice piuttosto che come carattere del codice:

/** See also this {@linkplain #myMethod(String) implementation}. */
void foo() { ... }

Una serie di chiamate di metodo, come nella tua domanda. Dobbiamo specificare etichette per i collegamenti ai metodi al di fuori di questa classe, oppure otteniamo getFoo().Foo.getBar().Bar.getBaz() . Ma queste etichette possono essere fragili; vedi "Etichette" sotto.

/**
 * A convenience method, equivalent to 
 * {@link #getFoo()}.{@link Foo#getBar() getBar()}.{@link Bar#getBaz() getBaz()}.
 * @return baz
 */
public Baz fooBarBaz()

etichette

Il refactoring automatico non può influire sulle etichette. Ciò include la ridenominazione del metodo, della classe o del pacchetto; e cambiando la firma del metodo.

Pertanto, fornire un'etichetta solo se si desidera un testo diverso da quello predefinito.

Ad esempio, potresti collegare dalla lingua umana al codice:

/** You can also {@linkplain #getFoo() get the current foo}. */
void setFoo( Foo foo ) { ... }

Oppure potresti collegare da un esempio di codice con testo diverso da quello predefinito, come mostrato sopra in "Una catena di chiamate di metodi". Tuttavia, questo può essere fragile mentre le API si stanno evolvendo.

Digita cancellatura e #member

Se la firma del metodo include tipi parametrizzati, utilizzare la cancellazione di tali tipi nel javadoc @link. Per esempio:

int bar( Collection<Integer> receiver ) { ... }

/** See also {@link #bar(Collection)}. */
void foo() { ... }

Troverai molte informazioni su JavaDoc nella Specifica dei commenti della documentazione per Doclet standard , incluse le informazioni sul

{@link package.class # member label}

tag (che stai cercando). L'esempio corrispondente dalla documentazione è il seguente

Ad esempio, ecco un commento che fa riferimento al metodo getComponentAt (int, int):

Use the {@link #getComponentAt(int, int) getComponentAt} method.

La parte package.class può essere omessa se il metodo indicato è nella classe corrente.

Altri link utili su JavaDoc sono:





javadoc