你怎么能逃脱javadoc中的@字符?

时间:2010-02-18 17:34:09

标签: java escaping javadoc

如何在javadoc中转义@符号?我试图在{@code}标记中使用它,该标记位于<pre>标记内。

我已经尝试过html转义&#64;序列,但这不起作用。

6 个答案:

答案 0 :(得分:243)

使用{@literal} javadoc标记:

/**
 * This is an "at" symbol: {@literal @}
 */

这个的javadoc将为:

This is an "at" symbol: @

当然,这适用于任何字符,并且是显示任何“特殊”字符的“官方支持”方式。

它也是最直接的 - 你不需要知道角色的十六进制代码,你可以阅读你输入的内容!

答案 1 :(得分:46)

只需将其写为HTML实体:

&#064;

来自文件“javadoc - The Java API Documentation Generator

  

如果你想用@字符开始一行并且没有解释它,请使用HTML实体@。

这意味着您可以将HTML实体用于您需要转义的任何字符,实际上您可以:

  

文本必须使用HTML实体和HTML标记以HTML格式编写。您可以使用浏览器支持的任何版本的HTML。标准doclet在其他地方(文档注释之外)生成符合HTML 3.2的代码,包含级联样式表和框架。由于帧集,HTML 4.0是生成文件的首选。

     

例如,小于号码(&lt;)和大于号码(&gt;)的实体应写为&lt;&gt;。同样,&符号(&amp;)应写为&amp;

答案 2 :(得分:7)

我的解决方案是

/**
 * Mapper Test Helper.
 *
 * add the following annotations above the class
 * <pre>{@code
 * // junit5
 * @literal @ExtendWith(SpringExtension.class)
 * // junit4
 * @literal @RunWith(SpringRunner.class)
 * }</pre>
 */

答案 3 :(得分:1)

你有了一般的想法,尝试使用八进制表示:&#064;

答案 4 :(得分:0)

https://stackoverflow.com/a/46332643/208581 ...的另一种替代方法是使用相似但不同的字符而不是转义该字符:(此答案是从源答案中复制的)


解决此问题的一种方法是使用看起来与标准“ @”符号相似的其他字符。

  1. @(U + FF20):完整的商业广告
  2. ⓐ(U + 24D0):拉丁文小写字母A

相似但不同

  1. @(U + 0040):商业AT(坏掉的普通电话)

答案 5 :(得分:0)

从 15.0.2 开始在 javadoc 工具中修复

这个问题现在似乎在使用 15.0.2 的 javadoc 工具时得到修复。

也就是说,我们在使用 javadoc multiline {@code ... } 块时不再需要转义 @ 字符。

记录了一个 JDK 错误 https://bugs.openjdk.java.net/browse/JDK-8130754 ... 目前未标记为已修复,但它不再使用 javadoc 15.0.2 重现。