如何在javadoc中转义@字符?
如何在javadoc中转义如何在javadoc中转义@字符?,java,escaping,javadoc,Java,Escaping,Javadoc,如何在javadoc中转义@符号?我试图在{@code}标记内使用它,该标记位于标记内 @ 我已经尝试过html escape@顺序,但这不起作用。你得到了大致的想法,试着使用八进制表示法:@只需将其作为HTML实体编写即可: /** * This is an "at" symbol: {@literal @} */ 来自文档“” 如果希望以@字符开头的行不进行解释,请使用HTML实体@ 这意味着您可以对需要转义的任何字符使用HTML实体,实际上您可以:
@
符号?我试图在{@code}
标记内使用它,该标记位于
标记内
@
我已经尝试过html escape
@代码>顺序,但这不起作用。你得到了大致的想法,试着使用八进制表示法:@代码>只需将其作为HTML实体编写即可:
/**
* This is an "at" symbol: {@literal @}
*/
来自文档“”
如果希望以@字符开头的行不进行解释,请使用HTML实体@
这意味着您可以对需要转义的任何字符使用HTML实体,实际上您可以:
文本必须用带有HTML实体和HTML标记的HTML编写。您可以使用浏览器支持的任何HTML版本。标准doclet在其他地方(文档注释之外)生成符合HTML3.2的代码,包括级联样式表和框架。由于框架集的原因,HTML 4.0是生成文件的首选
例如,小于符号()的实体应写成
和
。类似地,符号(&)应写为&代码>
使用javadoc标记:
This is an "at" symbol: @
这方面的javadoc将为:
/**
* Mapper Test Helper.
*
* add the following annotations above the class
* <pre>{@code
* // junit5
* @literal @ExtendWith(SpringExtension.class)
* // junit4
* @literal @RunWith(SpringRunner.class)
* }</pre>
*/
当然,这适用于任何字符,并且是显示任何“特殊”字符的“官方支持”方式
它也是最严格的——你不需要知道字符的十六进制代码,你可以阅读你键入的内容 我的解决方案是
/**
*映射测试助手。
*
*在类上方添加以下注释
*{@code
*//junit5
*@literal@ExtendWith(SpringExtension.class)
*//junit4
*@literal@RunWith(SpringRunner.class)
* }
*/
不要这样做
当有任何可能会有人从javadoc复制/粘贴代码时
另一种方法来自。。。是使用相似但不同的字符,而不是转义字符:(此答案从源答案复制)
解决这个问题的一种方法是使用与标准“@”符号相似的不同字符
@(U+FF20):在
ⓐ (U+24D0):带圆圈的拉丁文小写字母A
相似但不同于
@(U+0040):商用AT(断开的正常AT)
在15.0.2版本的javadoc工具中修复
现在,当使用15.0.2版本的javadoc工具时,这个问题似乎已经得到了解决
也就是说,当使用javadoc multiline{@code…}
块时,我们不再需要转义@字符
有一个JDK错误被记录。。。它当前未标记为固定,但不再使用javadoc 15.0.2进行复制。在我调整了@{code}块中的一些缩进后,现在它开始显示良好!如果有关系的话,这是在Eclipse中。我仍然无法让它工作。你如何摆脱}
符号?@ADTC你不能。你为什么要这么做}
在html中没有特殊意义。我很惊讶这一点被接受,所以投票表决。问题的前提:在{@code}标记内。{@literal}在{@code}标记中不起作用。什么?11月11日11点11分?您应该在一个月前发布此消息。;-)省略{
而只使用@literal@
可以在{@code}
标记中工作。@
具有十六进制的代码点0x40,在不后跟空格的情况下(例如,在编写注释时),它比literal表达式工作得更好不适用于我,因为我们希望能够从doc中复制代码(并且不强迫用户在几个小时内调试IDE中为什么该行是红色的)。出于兴趣,什么适用于@Top Master?@literal@
似乎有效,但前提是我的{@code
后面跟一个enter(不能与@code
在同一行),唯一的问题是符号前有一个意外的空格,比如“@”而不是“@”符号(例如,@Override
就没有问题)。我无法想象任何可混淆的情况(U+ff20或U+24d0)这是一个好主意。实际上,在某些情况下,从Javadoc复制是合法的,可混淆的内容将导致任何清晰可见(但仍然令人困惑)的内容一个几乎无法检测到的错误的语法错误。考虑到存在完全有效的替代方案,这一点尤其难以接受。只需说这个问题在JDK 15.0.2或更早版本中已经解决。也就是说,我不再需要使用javadoc工具从15.0.2中转义@。