Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javadoc内联标记(如{@code}标记)中转义大括号 /** *获取Nincomoop的肉丸图标。 * *_Java_Javadoc_Escaping_Curly Braces - Fatal编程技术网

如何在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…}
。,它将呈现你所期望的大括号

$&#123;person&#125; == ${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 &#125;.
/**
 * 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>&lt;custom:meatball color="&lt;%= Meatball.RED %&gt; nincompoop="${person}" /&gt;</code>
因此,在这种情况下,不可能做得更好


不幸的是,我找不到支持我的实验的
@code
的类似引用。

使用
{@literal}
,所以这样做
{@literal}
在我的测试中有效

因此,对于您的情况,它将如下所示:

If you need to use the right brace (}) inside the label, then use the HTML entity notation &#125;.
/**
 * 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> &lt;custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" /></code>
 * 
 * @author King Cong
 * 
 */
/**
 * Gets the meatball icon for a nincompoop.
 * 
 * <p>
 * Example: <code> &lt;custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" /></code>
 * 
 * @author King Cong
 * 
 */