Как ссылаться на метод в 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 .

Вы найдете много информации о JavaDoc на странице справки JavaDoc Tool , включая информацию о

{@link package.class # member label}

тег (который вы ищете):

Например, вот комментарий, который ссылается на метод getComponentAt (int, int):

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


Другие полезные ссылки о JavaDoc:

  • Технология JavaDoc
  • Как написать комментарии к Doc для инструмента Javadoc

Общий формат из раздела @link документации javadoc :

{@link package.class # member label}

Примеры

Метод в том же classе:

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

Метод в другом classе, либо в том же пакете, либо импортирован:

 /** 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() { ... } 

Цепочка методов вызывает, как в вашем вопросе. Мы должны указывать метки для ссылок на методы вне этого classа, или мы получаем 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() 

Этикетки

Автоматический рефакторинг может не влиять на метки. Это включает переименование метода, classа или пакета; и изменение сигнатуры метода.

Поэтому дайте ярлык только в том случае, если вам нужен другой текст, чем по умолчанию.

Например, вы можете ссылаться на человеческий язык на код:

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

Или вы можете ссылаться на образец кода с текстом, отличным от значения по умолчанию, как показано выше в разделе «Цепь вызовов методов». Однако это может быть хрупким, в то время как API-интерфейсы развиваются.

Тип стирания и # члена

Если сигнатура метода включает параметризованные типы, используйте стирание этих типов в javadoc @link. Например:

 int bar( Collection 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(); } 
  • Найти имя пакета для приложений Android, чтобы использовать Intent для запуска приложения Market из Интернета
  • Связывание значения столбца в jqGrid с новой страницей с помощью GET
  • Что такое синтаксис RTF для гиперссылки?
  • Как добавить гиперссылку в JLabel
  • Пример использования гиперссылки в WPF
  • Может ли Google Chrome открывать локальные ссылки?
  • Изменить цвет текста в тексте TextView и щелкнуть?
  • Как я могу сделать ссылку на клики в NSAttributedString?
  • Interesting Posts

    Рассчитать размер текста в соответствии с шириной области текста

    Присвоение имени домена локальному хосту для среды разработки

    Драйвер сенсорной панели Synaptics не может помешать сенсорной панели «постучать = щелкнуть»,

    Имя терминала / вкладки

    Вызывающий stream не может получить доступ к этому объекту, потому что ему принадлежит другой stream

    Ловля «Максимальная длина запроса превышена»

    Основы Android: запуск кода в streamе пользовательского интерфейса

    Разница между UTC и стандартным временем GMT в .NET.

    Невозможно загрузить файлы с использованием рассола и нескольких модhive

    Angularjs ui-router. Как перенаправить на страницу входа в систему

    Автоматический запуск Notepad ++ macro

    В Chrome «Очистить данные просмотра» не удаляются файлы cookie для открытых вкладок инкогнито?

    Почему исключения отсутствуют в .NET?

    Как удалить папку с внешних дисков, если имена слишком длинны (например, информация или контент тома системы)?

    Установка OpenCV-2.3 для Visual Studio 2010

    Давайте будем гением компьютера.