Javadoc评论中有多行代码示例

我有一个我想包含在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评论中格式化代码示例的最佳方式是什么?


除了已经提到的<pre>标签之外,您还应该使用@code JavaDoc注释,这对于HTML实体问题(特别是对于泛型)将使生活更加轻松,例如:

* <pre>
* {@code
* Set<String> s;
* System.out.println(s);
* }
* </pre>

将提供正确的HTML输出:

Set<String> s;
System.out.println(s);

虽然省略@code块(或使用<code>标签)会导致HTML如下所示:

Set s;
System.out.println(s);

(作为参考,可以在这里找到Java SE 8标签描述:Javadoc标签)


将一个特定的代码示例包含在javadoc评论中,我感到非常难过。 我想分享这一个。
请注意以下事项:

  • 使用旧的<code> - 标签来防止大括号被解释
  • 使用“new” {@code ...} - tag来获得输出中包含的泛型
  • 在@符号的逸出@Override通过“ {@literal @}Override ”,因为javadoc的发电机“倾斜”有由于该@左大括号之后直接进入的事实
  • 删除{@code{@literal前面的一个空格,以补偿内部空间并保持对齐
  • javadoc代码:

    /** this methods adds a specific translator from one type to another type. `
      * i.e.
      * <pre>
      * <code>new BeanTranslator.Builder()
      *   .translate(
      *     new{@code Translator<String, Integer>}(String.class, Integer.class){
      *      {@literal @}Override
      *       public Integer translate(String instance) {
      *         return Integer.valueOf(instance);
      *       }})
      *   .build();
      * </code>
      * </pre>
      * @param translator
      */
    

    被打印为

    new BeanTranslator.Builder()
      .translate(
        new Translator<String, Integer>(String.class, Integer.class){
          @Override
          public Integer translate(String instance) {
            return Integer.valueOf(instance);
          }})
      .build();
    

    Java源码有很多很好的例子。 下面是一个来自“String.java”头部的例子:

    ....
     * is equivalent to:
     * <p><blockquote><pre>
     *     char data[] = {'a', 'b', 'c'};
     *     String str = new String(data);
     * </pre></blockquote><p>
     * Here are some more examples of how strings can be used:
     * <p><blockquote><pre>
     *     System.out.println("abc");
     *     String cde = "cde";
     *     System.out.println("abc" + cde);
     *     String c = "abc".substring(2,3);
     *     String d = cde.substring(1, 2);
     * </pre></blockquote>
    ...
    
    链接地址: http://www.djcxy.com/p/50197.html

    上一篇: Multiple line code example in Javadoc comment

    下一篇: How do I make the method return type generic?