如何在javadoc内联标记(如{@code}标记)中转义大括号 /** *获取Nincomoop的肉丸图标。 * *
如何在javadoc内联标记(如{@code}标记)中转义大括号 /** *获取Nincomoop的肉丸图标。 * *,java,javadoc,escaping,curly-braces,Java,Javadoc,Escaping,Curly Braces,*示例:{@code尝试使用HTML转义: /** * Gets the meatball icon for a nincompoop. * * <p> * Example: {@code <custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" />} * * @author King Cong * */ 与其说是一个解决办法,不如说是一个解决办法,但如果你用
*示例:{@code尝试使用HTML转义:
/**
* Gets the meatball icon for a nincompoop.
*
* <p>
* Example: {@code <custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" />}
*
* @author King Cong
*
*/
与其说是一个解决办法,不如说是一个解决办法,但如果你用旧版本替换
{@code…}
。,它将呈现你所期望的大括号
${person} == ${person}
不幸的是,这打破了尖括号,因此对于原始问题,您需要避开这些:
<code>{person} == ${person}</code>
你甚至可以在这里作弊,让记事本++为你做这件事,使用便捷的TextFX->convert->encodehtml(&)
这至少有一个好处,即在生成的Javadoc和Javadoc视图中的Eclipse中,所有内容都可以很好地呈现,而Javadoc视图似乎不理解
&
和朋友。事实上,我也遇到了同样的问题-没有一个命题对我有效(HTML转义无论出于何种原因都不起作用)。
如果有帮助-请尝试在有问题的符号之前关闭{@code},然后重新打开,如下所示:
If you need to use the right brace (}) inside the label, then use the HTML entity notation }.
/**
* Gets the meatball icon for a nincompoop.
*
* <p>
* Example: <code>{@literal<}custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" /></code>
*
* @author King Cong
*
*/
{@code nincompop=“}${person}{@code”/>
这似乎不是解决方案,但它可以工作,如果小心使用,也不会破坏格式:)Bodunbun解决方案可以工作,因为通常情况下,您在javadocs中也有换行符。如果您同时需要{和换行符,HTML转义将不起作用
{@code
}
我会给你
<pre>
{@code
<foo bar="}${bar}{@code"/>
<bar foo="}${foo}{@code"/>
}
</pre>
至少从Java 1.8.0\u 31开始,我无法再现该问题。您的输入按预期呈现:
<foo bar="${bar}" />
<bar foo="${foo}" />
我的测试表明,javadoc
考虑了@code
中平衡的花括号,并且只有在找到相应的花括号时才会结束
因此,如果代码像您的示例一样有平衡的大括号{}
,那么它现在就可以正常工作了
但我仍然不知道如何处理不平衡的花括号,比如:
<code><custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" /></code>
因此,在这种情况下,不可能做得更好
不幸的是,我找不到支持我的实验的
@code
的类似引用。使用{@literal}
,所以这样做{@literal}
在我的测试中有效
因此,对于您的情况,它将如下所示:
If you need to use the right brace (}) inside the label, then use the HTML entity notation }.
/**
* Gets the meatball icon for a nincompoop.
*
* <p>
* Example: <code>{@literal<}custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" /></code>
*
* @author King Cong
*
*/
/**
*获取Nincomoop的肉丸图标。
*
*
*示例:{@code找到了另一个不太理想的解决方案。它比其他解决方案好还是坏?我让你来决定。拿{@code}
部分,用
替换它(这会使它因为角括号而消失。)以第一个为例,很遗憾这是最好的答案。这很烦人,不是吗?我希望有更好的方法。在Eclipse Javadoc视图中似乎没有正确呈现。这真的像预期的那样工作吗?文档说{@code}
中的内容没有被解释为HTML,就像{@literal}一样
,所以这就是怀疑字符引用也不起作用的原因。我最终使用了HTML转义,而没有{@code}
标记。IDEs无论如何都会将其呈现为可读的。使用
也会使标记变得更好。当我希望保留注释中的空格格式时,请获取我的投票,保留尖括号并显示${…},如演示maven插件配置(属性)中所示。它稍微弄乱了注释,但有利于javadoc输出(和eclipse javadoc突出显示)。我猜这是你喜欢更漂亮的地方-注释或javadoc-尽管这有点不清晰。遗憾的是,在JDK 1.8+Eclipse Neon上,严格的javadoc检查程序会抱怨缺少一个@code
的右括号。所以我再次使用了
。啊,这比我上面对arasul答案的投票更早。arasul仍然强调了{@code}的良好使用,并在javadoc和注释中实现了良好的XML。显然,我没有进行足够的测试。它对块中的尖括号不起作用。它对我根本不起作用。第一个}关闭了{在@literal之前。
/**
* Gets the meatball icon for a nincompoop.
*
* <p>
* Example: <code> <custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" /></code>
*
* @author King Cong
*
*/
/**
* Gets the meatball icon for a nincompoop.
*
* <p>
* Example: <code> <custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" /></code>
*
* @author King Cong
*
*/