将多行放在Javadoc的param标记中的正确方法是什么?

时间:2016-09-09 22:09:01

标签: java javadoc doxygen

我无法找到有关在javadoc参数中是否可以有多行信息的任何信息。我正在制作一个国际象棋引擎,我希望能够解析一个字符串来生成一个棋盘。我可以在下面完成它吗?

/**
 * Creates a board based on a string.
 * @param boardString The string to be parsed. Must be of the format:
 *      "8x8\n" +
 *      "br,bn,bb,bq,bk,bb,bn,br\n" +
 *      "bp,bp,bp,bp,bp,bp,bp,bp\n" +
 *      "  ,  ,  ,  ,  ,  ,  ,  \n" +
 *      "  ,  ,  ,  ,  ,  ,  ,  \n" +
 *      "  ,  ,  ,  ,  ,  ,  ,  \n" +
 *      "  ,  ,  ,  ,  ,  ,  ,  \n" +
 *      "wp,wp,wp,wp,wp,wp,wp,wp\n" +
 *      "wr,wn,wb,wq,wk,wb,wn,wr"
 */

编辑:这已被标记为重复。我认为它不是重复的原因是因为另一个问题只是创建一个多行javadoc注释,而这个是关于将多行作为param参数的一部分。

1 个答案:

答案 0 :(得分:7)

我会说你做的方式很好(编辑:哦,也许不是。如果你想维持那个特定的格式,你看起来需要一个很好的<pre>服务。幸运的是,答案仍然有效!)。

考虑Apache Commons BooleanUtils的专家级示例......

/**
 * <p>Converts an Integer to a boolean specifying the conversion values.</p>
 * 
 * <pre>
 *   BooleanUtils.toBoolean(new Integer(0), new Integer(1), new Integer(0)) = false
 *   BooleanUtils.toBoolean(new Integer(1), new Integer(1), new Integer(0)) = true
 *   BooleanUtils.toBoolean(new Integer(2), new Integer(1), new Integer(2)) = false
 *   BooleanUtils.toBoolean(new Integer(2), new Integer(2), new Integer(0)) = true
 *   BooleanUtils.toBoolean(null, null, new Integer(0))                     = true
 * </pre>
 *
 * @param value  the Integer to convert
 * @param trueValue  the value to match for <code>true</code>,
 *  may be <code>null</code>
 * @param falseValue  the value to match for <code>false</code>,
 *  may be <code>null</code>
 * @return <code>true</code> or <code>false</code>
 * @throws IllegalArgumentException if no match
 */
public static boolean toBoolean(Integer value, Integer trueValue, Integer falseValue) {
    if (value == null) {
        if (trueValue == null) {
            return true;
        } else if (falseValue == null) {
            return false;
        }
    } else if (value.equals(trueValue)) {
        return true;
    } else if (value.equals(falseValue)) {
        return false;
    }
    // no match
    throw new IllegalArgumentException("The Integer did not match either specified value");
}

只是截断你的长行并继续直到你需要下一个参数(或者你已经完成了)。 Javadoc还支持许多HTML标记,例如<pre>用于预格式化文本。当您的文档对间隔敏感时(包括换行符),这很有用。