如何在javadoc中引用方法?

piok6c0g  于 2023-10-14  发布在  Java
关注(0)|答案(3)|浏览(82)

如何使用@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标签。

ctehm74n

ctehm74n1#

您可以在 * Documentation Comment Specification for the Standard Doclet * 找到有关JavaDoc的许多信息,包括有关

{@link模块/包.class#成员标签}

你所寻找的,文档中相应的示例如下所示
例如,这里有一个注解,它引用了getInteger(int,int)方法:
Use the {@link #getComponentAt(int, int) getComponentAt} method.
如果引用的方法在当前类中,则可以省略module/package.class部分。
关于JavaDoc的其他有用链接是:

dldeef67

dldeef672#

来自javadoc文档的@link部分的通用格式是:

示例

同一类中的方法:

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

或者,您可以使用不同于默认值的文本从代码示例链接,如上面的“方法调用链”中所示。

类型擦除和#成员

如果方法签名包括参数化类型,请在javadoc @link中使用这些类型的擦除。举例来说:

int bar( Collection<Integer> receiver ) { ... }

/** See also {@link #bar(Collection)}. */
void foo() { ... }
goqiplq2

goqiplq23#

你可以使用@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();
    }

相关问题