【问题标题】: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 警告和绝对错误的格式。什么是解决方法?

【问题讨论】:

    标签: java 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 {
       * }
       * }
       */
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-14
        • 2015-03-01
        • 2010-09-11
        • 1970-01-01
        • 2021-02-07
        • 1970-01-01
        • 2011-02-23
        • 1970-01-01
        相关资源
        最近更新 更多