Ogólny format z sekcji @link dokumentacji javadoc to:
Przykłady
Metoda w tej samej klasie:
/** See also {@link #myMethod(String)}. */
void foo() { ... }
Metoda w innej klasie, w tym samym pakiecie lub zaimportowana:
/** See also {@link MyOtherClass#myMethod(String)}. */
void foo() { ... }
Metoda w innym pakiecie i nie zaimportowana:
/** See also {@link com.mypackage.YetAnotherClass#myMethod(String)}. */
void foo() { ... }
Etykieta połączona z metodą, zwykłym tekstem, a nie czcionką:
/** See also this {@linkplain #myMethod(String) implementation}. */
void foo() { ... }
Łańcuch wywołań metod, jak w twoim pytaniu. Musimy określić etykiety dla linków do metod poza tą klasą, albo otrzymamy getFoo().Foo.getBar().Bar.getBaz()
. Ale te etykiety mogą być kruche; patrz „Etykiety” poniżej.
/**
* A convenience method, equivalent to
* {@link #getFoo()}.{@link Foo#getBar() getBar()}.{@link Bar#getBaz() getBaz()}.
* @return baz
*/
public Baz fooBarBaz()
Etykiety
Automatyczne refaktoryzacja nie może wpływać na etykiety. Obejmuje to zmianę nazwy metody, klasy lub pakietu; i zmiana podpisu metody.
Dlatego podaj etykietę tylko wtedy, gdy chcesz mieć inny tekst niż domyślny.
Na przykład możesz utworzyć link z ludzkiego języka do kodu:
/** You can also {@linkplain #getFoo() get the current foo}. */
void setFoo( Foo foo ) { ... }
Lub możesz linkować z przykładowego kodu z tekstem innym niż domyślny, jak pokazano powyżej w „Łańcuch wywołań metod”. Może to jednak być kruche, gdy interfejsy API ewoluują.
Wpisz kasowanie i #member
Jeśli podpis metody zawiera sparametryzowane typy, użyj kasowania tych typów w javadoc @link. Na przykład:
int bar( Collection<Integer> receiver ) { ... }
/** See also {@link #bar(Collection)}. */
void foo() { ... }