/**
* Gets the meatball icon for a nincompoop.
*
* <p>
* Example: {@code <custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" />}
*
* @author King Cong
*
*/
“$ {person}”部分会破坏文档评论,因为它使用花括号。
答案 0 :(得分:22)
作为一种解决方法,答案并非如此,但如果您使用旧版本{@code ...}
替换<code>...</code>
,它将以您期望的方式呈现大括号。
<code>{person} == ${person}</code>
不幸的是,这会破坏尖括号,所以对于原始问题,你需要逃避这些:
<code><custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" /></code>
你甚至可以通过让Notepad ++为你做到这一点来欺骗,方便的TextFX - &gt;转换 - &gt;编码HTML(&amp;&lt;&gt;“)。
这至少可以带来好处,一切都可以在生成的Javadoc和Javadoc视图中的Eclipse中很好地呈现,而Javadoc视图似乎无法理解}
和朋友。
答案 1 :(得分:18)
尝试使用HTML转义:
${person} == ${person}
答案 2 :(得分:8)
bodunbodun解决方案的工作原理通常是你在javadocs中也有换行符。如果你想要{和换行符
,HTML转义将不起作用<pre>
{@code
<foo bar="}${bar}{@code"/>
<bar foo="}${foo}{@code"/>
}
</pre>
会给你
<foo bar="${bar}" />
<bar foo="${foo}" />
答案 3 :(得分:3)
我实际上遇到了同样的问题 - 没有一个命题对我有用(HTML转义因任何原因都不起作用)。 如果这有帮助 - 尝试在有问题的符号之前关闭{@code}并在之后重新打开它,如下所示:
{@ code nincompoop =“} $ {person} {@ code ”/&gt;}
这似乎不是解决方案,但它有效,如果小心使用,不会破坏格式:)
答案 4 :(得分:2)
至少从Java 1.8.0_31开始,我再也无法重现这个问题了。您的输入按预期呈现:
<code><custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" /></code>
我的测试表明javadoc
考虑了@code
内的平衡花括号,只有在找到相应的花括号时才会结束。
因此,如果代码具有与您的示例类似的平衡花括号{}
,则它现在可以按预期工作。
但我仍然不知道如何处理不平衡的花括号,如:
{@code printf"}<b>outside</b>"}
此外,行为取决于您使用的内联标记。 man javadoc
明确表示@link
:
If you need to use the right brace (}) inside the label, then use the HTML entity notation }.
因此,在这种情况下,不可能做得更好。
不幸的是,我无法找到支持我的实验的@code
类似的引用。
答案 5 :(得分:0)
为此找到另一个不太好的解决方法。它比其他更好还是更差?我让你决定。取<div id="about">
<div id="myPicture">
<p> </p>
<p>
<img src="images/profile2.jpg" />
</p>
</div>
<div id="myName">
<p>Dude</p>
</div>
</div>
部分并将其替换为{@code }
。 (这使得它因角度括号而全部消失。)取第一个<code> </code>
并将其包裹在<
中,使其看起来像{@literal }
。现在一切都会好起来,并且在代码中不会被狠狠地宰杀。最终结果如下所示
{@literal<}
或者,如果您不喜欢/**
* Gets the meatball icon for a nincompoop.
*
* <p>
* Example: <code>{@literal<}custom:meatball color="<%= Meatball.RED %> nincompoop="${person}" /></code>
*
* @author King Cong
*
*/
,则可以使用{@literal<}
。结果如下:
<
两者都不是很好的解决方案,但它们确实有用。
答案 6 :(得分:-1)
使用{@literal}
,请执行此操作{@literal } }
。适用于我的测试。
因此,对于您的情况,它看起来像这样:
/**
* Gets the meatball icon for a nincompoop.
*
* <p>
* Example: {@code <custom:meatball color="<%= Meatball.RED %> nincompoop="${person{@literal } }" />}
*
* @author King Cong
*
*/