Общий формат из раздела @ ссылки документации javadoc :
Примеры
Метод в том же классе:
/** See also {@link #myMethod(String)}. */
void foo() { ... }
Метод в другом классе, либо в том же пакете, либо импортирован:
/** See also {@link MyOtherClass#myMethod(String)}. */
void foo() { ... }
Метод в другой упаковке и не импортируется:
/** See also {@link com.mypackage.YetAnotherClass#myMethod(String)}. */
void foo() { ... }
Метка, связанная с методом, в виде простого текста вместо шрифта кода:
/** See also this {@linkplain #myMethod(String) implementation}. */
void foo() { ... }
Цепочка вызовов методов, как в вашем вопросе. Мы должны указать метки для ссылок на методы вне этого класса, или мы получим getFoo().Foo.getBar().Bar.getBaz()
. Но эти ярлыки могут быть хрупкими; см. «Метки» ниже.
/**
* A convenience method, equivalent to
* {@link #getFoo()}.{@link Foo#getBar() getBar()}.{@link Bar#getBaz() getBaz()}.
* @return baz
*/
public Baz fooBarBaz()
Метки
Автоматический рефакторинг может не повлиять на метки. Сюда входит переименование метода, класса или пакета; и изменение сигнатуры метода.
Поэтому предоставьте метку только , если вы хотите текст, отличный от значения по умолчанию.
Например, вы можете перейти с человеческого языка на код:
/** You can also {@linkplain #getFoo() get the current foo}. */
void setFoo( Foo foo ) { ... }
Или вы можете ссылаться на пример кода с текстом, отличным от используемого по умолчанию, как показано выше в разделе «Цепочка вызовов методов». Тем не менее, это может быть хрупким, в то время как API развиваются.
Тип стирания и # member
Если сигнатура метода включает в себя параметризованные типы, используйте удаление этих типов в javadoc @link. Например:
int bar( Collection<Integer> receiver ) { ... }
/** See also {@link #bar(Collection)}. */
void foo() { ... }