如何在javadoc中转义@字符?


180

如何@在javadoc中转义符号?我正在尝试在{@code}标签内使用它<pre>

我已经尝试了html转义&#64;序列,但是没有用。


在调整@ {code}块中的某些缩进之后,现在它开始显示正常!如果重要的话,这是在Eclipse中。
JayL

我还是
无法解决

Answers:


267

使用{@literal}javadoc标记:

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

为此的javadoc将显示为:

This is an "at" symbol: @

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

这也是最简单明了-你不需要知道字符的十六进制代码,并且可以读取你输入什么!


1
您如何逃避}符号?
ADTC

1
@ADTC您不能。你为什么要 }在html中没有特殊含义。
波希米亚

因此,我想您只能将其分为两个literal标签。
ADTC 2013年

23
我很惊讶这被接受并如此投票。问题的前提:在{@code}标签内。{@literal}在{@code}标记内不起作用。
Daniel C. Sobral

6
省略{和仅使用标签@literal @内部的作品{@code}
Brad Turek '18

55

只需将其编写为HTML实体即可:

&#064;

来自文档“ javadoc-Java API文档生成器

如果要以@字符开头但不对其进行解释,请使用HTML实体@。

这意味着您可以对需要转义的任何字符使用HTML实体,并且确实可以:

文本必须用带有HTML实体和HTML标签的HTML编写。您可以使用浏览器支持的任何HTML版本。标准doclet会在其他地方(文档注释之外)生成HTML 3.2兼容代码,其中包括级联样式表和框架。由于具有框架集,因此首选将HTML 4.0用于生成的文件。

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


在不带空格的情况下(例如,写注释时),它比文字表达式更好
。– Bludwarf

8

我的解决方案是

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.