我正在尝试使用Netbeans 8.0在Javadoc注释中插入{@code}注释,它不能正常工作。
我以前见过关于这个的其他问题(例如,如何在javadoc中转义@字符?),但是html转义@
和{@literal @}
似乎都不起作用。
我的注释是这样的(为了便于示例,使用了两种方法):
/**
* blah blah blah
* <p>
* For example:
* <pre>
* {@code
* {@literal @}begin_specification
* ...
* @end_specification
* }
* </pre>
*/
我可以点击Run -> Generate Javadoc
,一切都运行良好,没有错误,但当我在浏览器中查看结果输出时,我看到了这一点:
{@literal @}begin_specification
...
@end_specification
这不是期望的结果…任何建议/想法吗?
我对Java相当陌生,但过去在C/c++中使用过氧之类的东西。我做错什么了吗?我使用NetBeans 8.0 (Build 201403101706)与Java 1.8.0_05 x64.
一种方法是:
<pre> <code>
{@literal @}
</code> </pre>
代替{@code ...}
块。参见第86行左右的示例
这是一个已知的bug。相应bug的链接是:
https://bugs.openjdk.java.net/browse/jdk - 8130754截至2016-10-07,没有预定的修复版本。
解决这个bug的一种方法是使用一个看起来类似于标准"@"符号的不同字符。我发现了一些类似的Unicode字符:
- @ (U+0040):商用AT(损坏的正常AT)
- ω (u + 24d0):带圈的拉丁小写字母a
- @ (u + fe6b):小商业
- @ (u + ff20):全宽广告
我试图写"@Override"与所有这些在javadoc注释{@code…}标记。(我使用的是Netbeans编辑器和Mozilla Firefox浏览器。)所有的符号都起作用了,当然除了#1。此外,#3在编辑器中没有显示,但在浏览器中运行良好。
我刚刚在NetBeans 8.0.1上也遇到了这个问题,所以摆弄了大约15分钟。起初,在javadoc中使用{@code }
格式化器时,父元素中没有显示任何内容,因此我在javadoc中的文本中有实际的中断。然后在搞乱它并改变它周围(使用<pre>
和其他几个标签)并打开其他具有{@link }
和什么的类后,它刚刚开始工作。
不确定发生了什么,但可能IDE的javadoc渲染器需要一些时间来完全"预热"。虽然这听起来很不专业,但事实确实如此。一个javadoc头正确地显示了一个{@code }
块,但在几个字之外的另一个头却没有。现在所有的都显示正确了。不确定这对任何人都有帮助,但在考虑了我将向NetBeans发送一个新的bugzilla票之后,我又回来工作了。