如何在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工具参考页面find关于JavaDoc的许多信息,包括关于JavaDoc的信息

{@link package.class#成员标签}

标签(你正在寻找):

例如,下面是一个引用getComponentAt(int,int)方法的注释:

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


关于JavaDoc的其他有用的链接是:

  • JavaDoc技术
  • 如何为Javadoc工具编写文档注释

javadoc文档的@link部分的一般格式是:

{@link package.class#成员标签}

例子

同一class级的方法:

 /** 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正在发展时,这可能是脆弱的。

types擦除和#成员

如果方法签名包含参数化types,请使用javadoc @link中的这些types的擦除。 例如:

 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(); }