Javadoc链接到其他类中的方法

Rob*_*ert 219 java javadoc

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

@see {@link com.my.package.Class#method()}
Run Code Online (Sandbox Code Playgroud)

根据我从文档中的理解,这是正确的方法.但现在到了有趣的部分,还是令人沮丧.当我生成这个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()}
Run Code Online (Sandbox Code Playgroud)

生成的HTML代码是:

"," <code>com.my.package.Class#method()}</code> ","
Run Code Online (Sandbox Code Playgroud)

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

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

rge*_*man 256

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

@see com.my.package.Class#method()
Run Code Online (Sandbox Code Playgroud)

这里有更多关于的信息@see.

  • 您可以在Javadoc尚未转换为链接的其他地方使用`@link`,例如在`@param`的描述中,在`@ return`的描述中,在描述的主要部分中,等等. (7认同)
  • 当我刚刚尝试此操作时,它会将方法显示为纯文本,它不像我的 @see 本地方法那样可点击。 (2认同)

Jav*_*ome 139

除此之外@see,引用另一个类以及该类的可能方法的更一般方法是{@link somepackage.SomeClass#someMethod(paramTypes)}.这有利于在javadoc描述中使用.

javadoc文档(@link标签的描述):

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


小智 59

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

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

  • @Sniper我认为这不是必须接受的答案,因为这是一个Javadoc问题 - 一般应该理解Javadoc只适用于Javadoc评论. (5认同)
  • 这应该被接受,因为其他两个答案并不表明'@link'或'@see'需要在多行注释中/ ** * /不是单行 (2认同)