Das allgemeine Format aus dem Abschnitt @link der Javadoc-Dokumentation lautet:
Beispiele
Methode in derselben Klasse:
/** See also {@link #myMethod(String)}. */
void foo() { ... }
Methode in einer anderen Klasse, entweder im selben Paket oder importiert:
/** See also {@link MyOtherClass#myMethod(String)}. */
void foo() { ... }
Methode in einem anderen Paket und nicht importiert:
/** See also {@link com.mypackage.YetAnotherClass#myMethod(String)}. */
void foo() { ... }
Mit der Methode verknüpfte Bezeichnung im Klartext anstelle der Codeschrift:
/** See also this {@linkplain #myMethod(String) implementation}. */
void foo() { ... }
Eine Kette von Methodenaufrufen, wie in Ihrer Frage. Wir müssen Beschriftungen für die Links zu Methoden außerhalb dieser Klasse angeben, sonst erhalten wir getFoo().Foo.getBar().Bar.getBaz()
. Diese Etiketten können jedoch zerbrechlich sein. siehe "Etiketten" unten.
/**
* A convenience method, equivalent to
* {@link #getFoo()}.{@link Foo#getBar() getBar()}.{@link Bar#getBaz() getBaz()}.
* @return baz
*/
public Baz fooBarBaz()
Etiketten
Das automatisierte Refactoring wirkt sich möglicherweise nicht auf Etiketten aus. Dies umfasst das Umbenennen der Methode, Klasse oder des Pakets. und Ändern der Methodensignatur.
Geben Sie daher nur dann eine Beschriftung an , wenn Sie einen anderen als den Standardtext wünschen.
Sie können beispielsweise eine Verknüpfung von der menschlichen Sprache zum Code herstellen:
/** You can also {@linkplain #getFoo() get the current foo}. */
void setFoo( Foo foo ) { ... }
Oder Sie verknüpfen ein Codebeispiel mit einem anderen als dem Standardtext, wie oben unter "Eine Kette von Methodenaufrufen" gezeigt. Dies kann jedoch während der Entwicklung von APIs fragil sein.
Geben Sie erasure und #member ein
Wenn die Methodensignatur parametrisierte Typen enthält, verwenden Sie das Löschen dieser Typen im javadoc @link. Zum Beispiel:
int bar( Collection<Integer> receiver ) { ... }
/** See also {@link #bar(Collection)}. */
void foo() { ... }