Javadoc链接到其他类中的方法

时间:2013-07-05 19:54:36

标签: java javadoc

目前我正在使用这种Javadoc语法引用其他类中的方法:

@see {@link com.my.package.Class#method()}

根据我从文档中的理解,这是正确的方法。但现在到了有趣的部分,还是令人沮丧。当我生成这个javadoc时,我首先得到以下错误:

warning - Tag @see:illegal character: "123" in "{@link com.my.package.Class#method()}"
warning - Tag @see:illegal character: "64" in "{@link com.my.package.Class#method()}"
warning - Tag @see: reference not found: {@link com.my.package.Class#method()}

生成的HTML代码是:

"," <code>com.my.package.Class#method()}</code> ","

当然我没有联系。 谁能告诉我发生了什么,以及如何解决这个问题的任何提示?

根据ASCII表字符123和64表示{和@,所以根据文档,当这种语法正确时,为什么这些字符不能有效?

3 个答案:

答案 0 :(得分:235)

对于Javadoc标记@see,您不需要使用@link; Javadoc将为您创建一个链接。尝试

@see com.my.package.Class#method()

Here's more info about @see.

答案 1 :(得分:125)

除了@see之外,引用另一个类的更一般方式以及该类的方法可能是{@link somepackage.SomeClass#someMethod(paramTypes)}。这样做的好处是可以在javadoc描述中使用。

来自javadoc documentation (description of the @link tag)

  

这个标签与@see非常相似 - 两者都需要相同的引用,并且接受package.class #member和label完全相同的语法。主要区别在于{@link}生成内联链接,而不是将链接放在“另请参见”部分。此外,{@link}标记以花括号开头和结尾,以将其与其余内嵌文本分开。

答案 2 :(得分:45)

因此原始问题的解决方案是您不需要在同一行上同时使用“@see”和“{@link ...}”引用。 “@link”标签是自给自足的,如上所述,您可以将它放在javadoc块中的任何位置。所以你可以混合使用这两种方法:

/**
 * some javadoc stuff
 * {@link com.my.package.Class#method()}
 * more stuff
 * @see com.my.package.AnotherClass
 */