我有一个小代码示例,我想在Javadoc注释中包含一个方法。
/**
* -- ex: looping through List of Map objects --
* <code>
* for (int i = 0; i < list.size(); i++) {
* Map map = (Map)list.get(i);
* System.out.println(map.get("wordID"));
* System.out.println(map.get("word"));
* }
* </code>
*
* @param query - select statement
* @return List of Map objects
*/
问题是在Javadoc中显示的代码示例没有换行符,这使得它难以阅读。
-- ex: looping through List of Map objects -- for (int i = 0; i list.size(); i++) { Map map = (Map)list.get(i); System.out.println(map.get("wordID")); System.out.println(map.get("word")); }
Parameters
query - - select statement
Returns:
List of Map objects
我想我假设代码标记可以处理换行符是错误的。在Javadoc注释中格式化代码示例的最佳方法是什么?
我能够用下面的代码片段生成好看的HTML文件——代码1中显示了它。
* <pre>
* {@code
* A-->B
* \
* C-->D
* \ \
* G E-->F
* }
*</pre>
(代码1)
如图1所示,代码1变成了生成的javadoc HTML页面。
A-->B
\
C-->D
\ \
G E-->F
(图1)
然而,在NetBeans 7.2中,如果你按Alt+Shift+F(重新格式化当前文件),代码1就会变成代码2。
* <
* pre>
* {@code
* A-->B
* \
* C-->D
* \ \
* G E-->F
* }
* </pre>
(代码2)
第一个<pre>现在被分成两行。代码2生成生成的javadoc HTML文件,如图2所示。
< pre> A-->B \ C-->D \ \ G E-->F
(图2)
Steve B的建议(代码3)似乎给出了最好的结果,即使在按Alt+Shift+F后仍然保持格式化。
*<p><blockquote><pre>
* A-->B
* \
* C-->D
* \ \
* G E-->F
* </pre></blockquote>
(3)代码
使用代码3产生与图1所示相同的javadoc HTML输出。
使用Java SE 1.6,看起来所有大写的PRE标识符都是在Javadoc中做到这一点的最佳方式:
/**
* <PRE>
* insert code as you would anywhere else
* </PRE>
*/
是最简单的方法。
我从java.awt.Event方法中得到了一个javadoc的例子:
/**
* <PRE>
* int onmask = SHIFT_DOWN_MASK | BUTTON1_DOWN_MASK;
* int offmask = CTRL_DOWN_MASK;
* if ((event.getModifiersEx() & (onmask | offmask)) == onmask) {
* ...
* }
* </PRE>
*/
这将产生与常规代码完全相同的输出,常规代码间距和新行不变。