【问题标题】:How to quote "*/" in JavaDocs如何在 JavaDocs 中引用“*/”
【发布时间】:2010-10-12 12:31:15
【问题描述】:

我需要在我的 JavaDoc 注释中包含 */。问题是这也是关闭评论的相同顺序。引用/转义这个的正确方法是什么?

例子:

/**
 * Returns true if the specified string contains "*/".
 */
public boolean containsSpecialSequence(String str)

跟进:看来我可以使用/ 作为斜线。唯一的缺点是直接在文本编辑器中查看代码时,这并不是那么可读。

/**
 * Returns true if the specified string contains "*/".
 */

【问题讨论】:

  • 我喜欢 bobince 的建议,包括“星号后跟斜杠”,可能在文字“*/”之后的括号中。然后它在代码和 Javadoc 中都是可读的。

标签: java comments javadoc


【解决方案1】:

使用 HTML 转义。

所以在你的例子中:

/**
 * Returns true if the specified string contains "*/".
 */
public boolean containsSpecialSequence(String str)

/ 转义为“/”字符。

Javadoc 应该将不受干扰的转义序列插入到它生成的 HTML 中,并且应该在浏览器中呈现为“*/”。

如果你想非常小心,你可以转义两个字符:*/ 转换为 */

编辑:

跟进:看来我可以使用 / 为斜线。唯一的缺点是 这不是那么可读的 直接查看代码。

所以?重点不是让您的代码可读,而是让您的代码documentation 可读。大多数 Javadoc cmets 都嵌入了复杂的 HTML 来进行解释。地狱,C# 的等价物提供了一个完整的 XML 标记库。我在那里看到了一些非常复杂的结构,让我告诉你。

编辑 2: 如果它太困扰你,你可能会嵌入一个解释编码的非 javadoc 内联注释:

/**
 * Returns true if the specified string contains "*/".
 */
// returns true if the specified string contains "*/"
public boolean containsSpecialSequence(String str)

【讨论】:

  • 我会选择 B.
  • 除了我之外,这是否会困扰其他任何人?现在它在 javadoc 中看起来不错,但是当您只查看源代码时它是不可读的......
  • 它并非完全不可读。你是程序员,对吧?即使您不认识实际值,您至少应该能够意识到它是一个 HTML 转义码。你可以随时查看。正如我之前所说,javadoc 的重点是文档的可读性,而不是代码。
  • 也就是说,您始终可以嵌入不是 Javadoc 的注释,以便在代码的其他地方向您自己解释。类似于: // 搜索“*/”
  • 只需在 IDE 中打开 javadoc 视图。这些天他们往往非常棒......
【解决方案2】:

没有人提到{@literal}。这是另一种方法:

/**
 * Returns true if the specified string contains "*{@literal /}".
 */

很遗憾,您一次无法逃脱*/。这也解决了一些缺点:

唯一的缺点是直接在文本编辑器中查看代码时,这并不是那么可读。

【讨论】:

    【解决方案3】:
    /**
     * Returns true if the specified string contains "*/".
     */
    

    这是“正确”的解决方案,但为了便于阅读,我可能会选择:

    /**
     * Returns true if the string contains an asterisk followed by slash.
     */
    

    【讨论】:

    • 嗯,好的,但是在给出 shell glob 模式的例子时,这个建议并不是很有用,例如foo/bar/**/baz.zip
    【解决方案4】:

    使用实体

    */ 
    

    在您的文档中,它将显示为“*/”

    【讨论】:

      【解决方案5】:

      我偶然发现的另一种方式,只是为了完整性:添加一些 HTML 标记,它不会改变 * 和 / 之间的输出。

        /**
         * *<b/>/
         */
      

      与 HTML 转义解决方案相比,这似乎是一种丑陋的 hack,但它也会在 HTML 输出中产生正确的结果。

      【讨论】:

      • 不完全;您目前的建议可能会违反 html 文档类型。如果有人要走这条路,我会建议类似:*/ 以确保标签已关闭。
      • 啊,我想知道这个,但是因为它是最短的选项并且在 IDEA (Ctrl-Q) 中运行良好,所以就这样离开了。如果不是 ,难道 */ 或 */ 就足够了吗?
      【解决方案6】:

      我建议你在附近的某处添加一行注释,说类似

      // *&#47; is html for */
      

      【讨论】:

        猜你喜欢
        • 2022-01-18
        • 1970-01-01
        • 2014-01-11
        • 1970-01-01
        • 2014-03-24
        • 2011-04-18
        • 2019-10-22
        • 2019-01-16
        • 2018-08-02
        相关资源
        最近更新 更多