如何在 Javadoc 中使用 @ 和 符号格式化代码片段?

Posted

技术标签:

【中文标题】如何在 Javadoc 中使用 @ 和 符号格式化代码片段?【英文标题】:How to format code snippet in Javadoc with @ and symbols inside?如何在 Javadoc 中使用 @ 和 符号格式化代码片段? 【发布时间】:2011-12-23 01:02:18 【问题描述】:

这就是我想要做的:

/**
 * <pre>
 * @code
 * &#64;XmlRootElement
 * public final class Page &#123;
 * &#125;
 * 
 * </pre>
 */

我希望它的格式如下:

@XmlRootElement
public final class Page 

但我得到了:

&#64;XmlRootElement
public final class Page &#123;
&#125;

用真实符号(@)替换这些 html 实体会导致 javadoc 警告和绝对错误的格式。什么是解决方法?

【问题讨论】:

【参考方案1】:

这就是它最终对我有用的方式:

/**
 * <pre>
 * &#64;XmlRootElement
 * public final class Page 
 * 
 * </pre>
 */

【讨论】:

你的答案对我有用。谢谢。如果使用“@literal @Override”,我必须在“@literal @Override”之前删除一个空格才能排队。【参考方案2】:
<pre>
<code>
@literal@Override
public String toString() 
    return "blah";

</code>
</pre>

这对我有用。

【讨论】:

我必须在@literal@ 之间添加一个空格,如下所示:@literal @Override【参考方案3】:

&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt; 包装你的代码sn-p。这些是特殊的 HTML 标记,可让您忘记特殊字符的转义。

【讨论】:

嗯。 precode 的定义中没有任何内容可以转义特殊字符。他们只改变字体和空白解释。 (另外,@ 可能在 HTML 浏览器获取它们之前就被 Javadoc 解释了。)【参考方案4】:

这是个老问题,但我知道为什么它不适合我。

这不起作用:

<pre>@code 
@Autowired

但是当全部写在一行中时,它可以工作。

<pre>
@code @Autowired

【讨论】:

【参考方案5】:

从 Java 18 (JEP 413) 开始,您可以使用 @snippet 标签:

/**
 * -- ex: looping through List of Map objects --
 * @snippet :
 * @XmlRootElement
 * public final class Page 
 * 
 * 
 */

【讨论】:

以上是关于如何在 Javadoc 中使用 @ 和 符号格式化代码片段?的主要内容,如果未能解决你的问题,请参考以下文章

IntelliJIDEA中如何使用JavaDoc

Eclipse Javadoc 格式化:如何允许/禁止单行 Javadoc 注释?

Javadoc

IntelliJ:如何保持简短的单行 JavaDoc 多行?

IntelliJIDEA中如何使用JavaDoc

Intellij IDEA如何生成JavaDoc?