我有一个小代码示例,我想在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注释中格式化代码示例的最佳方法是什么?


当前回答

<blockquote><pre>…以前和< > {@code……前者将省略泛型中的类型声明,而后者将保留它。

例如: List<MyClass> myObject = null; List myObject = null;List<MyClass> myObject = null;第二种情况

其他回答

我使用这两种方法没有任何问题:

<pre>
<code>
 ... java code, even including annotations
</code>
</pre>

and

<pre class="code">
 ... java code, even including annotations
</pre>

当然,后者更简单,请注意class="code"部分

从Java 18 (JEP 413)开始,您可以使用@snippet标记:

/**
 * -- ex: looping through List of Map objects --
 * {@snippet :
 * 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"));
 * }
 * }
 *
 * @param query - select statement
 * @return List of Map objects
 */

我附上了带有<pre class="brush: java"></pre>标签的示例代码,并对已发布的javadocs使用SyntaxHighlighter。它不会损害IDE,并使已发布的代码示例更漂亮。

用<pre></pre>标签将多行代码括起来。

<blockquote><pre>…以前和< > {@code……前者将省略泛型中的类型声明,而后者将保留它。

例如: List<MyClass> myObject = null; List myObject = null;List<MyClass> myObject = null;第二种情况