目前我正在使用这种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表示{和@,所以根据文档,当这种语法正确时,为什么这些字符不能有效?
答案 0 :(得分:235)
对于Javadoc标记@see
,您不需要使用@link
; Javadoc将为您创建一个链接。尝试
@see com.my.package.Class#method()
答案 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
*/