Как ссылаться на метод в javadoc?
как я могу использовать @link
тег для ссылки на метод?
Я хочу изменить
/**
* 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()
до
/**
* 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()
но я не знаю как формат @link
правильно тег.
3 ответов
вы найдете много информации о JavaDoc в спецификация комментария документации для стандартного Doclet, включая информацию о
тег (который вы ищете). Соответствующий пример из документации выглядит следующим образом
например, вот комментарий, который относится к getComponentAt (int, int) метод:
Use the {@link #getComponentAt(int, int) getComponentAt} method.
на package.class
часть может быть опущен, если упомянутый метод в текущем классе.
другие полезные ссылки о JavaDoc:
общий формат, от @link раздел документации javadoc, is:
примеры
метод в том же классе:
/** 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 ) { ... }
или вы можете связать образец кода с текстом, отличным от текста по умолчанию, как показано выше в разделе "цепочка вызовов методов."Однако это может быть хрупким, пока Апис развивается.
введите стирание и #member
если сигнатура метода включает параметризованные типы, используйте стирание этих типов в javadoc @link. Например:
int bar( Collection<Integer> receiver ) { ... }
/** See also {@link #bar(Collection)}. */
void foo() { ... }
можно использовать @see
для этого:
пример:
interface View {
/**
* @return true: have read contact and call log permissions, else otherwise
* @see #requestReadContactAndCallLogPermissions()
*/
boolean haveReadContactAndCallLogPermissions();
/**
* if not have permissions, request to user for allow
* @see #haveReadContactAndCallLogPermissions()
*/
void requestReadContactAndCallLogPermissions();
}