当我尝试使用Java 8和maven 3.2.3编译代码时,我得到了关于我的注释的奇怪错误

时间:2014-11-18 14:36:15

标签: maven java-8

当我尝试使用Java 8和maven 3.2.3在新机器中编译已经编译的代码时,我遇到了很多错误。示例如下,

  

/Users/lginnali/masters/independent-study-01/siddhi/modules/siddhi-extensions/siddhi-classifiers/src/main/java/org/wso2/siddhi/classifiers/trees/ht/Statistics.java: 176:错误:格式错误的HTML   [错误] *对于小参数0< y< exp(-2),程序计算   [错误] ^

我的代码如下所示(它抱怨我的注释行。)

/**
 * Returns the value, <tt>x</tt>, for which the area under the Normal
 * (Gaussian) probability density function (integrated from minus infinity to
 * <tt>x</tt>) is equal to the argument <tt>y</tt> (assumes mean is zero,
 * variance is one).
 * <p>
 * For small arguments <tt>0 < y < exp(-2)</tt>, the program computes
 * <tt>z = sqrt( -2.0 * log(y) )</tt>; then the approximation is
 * <tt>x = z - log(z)/z  - (1/z) P(1/z) / Q(1/z)</tt>. There are two rational
 * functions P/Q, one for <tt>0 < y < exp(-32)</tt> and the other for
 * <tt>y</tt> up to <tt>exp(-2)</tt>. For larger arguments,
 * <tt>w = y - 0.5</tt>, and <tt>x/sqrt(2pi) = w + w**3 R(w**2)/S(w**2))</tt>.
 *
 * @param y0 the area under the normal pdf
 * @return the z-value
 */
public static double normalInverse(double y0) {

    double x, y, z, y2, x0, x1;
    int code;

    final double s2pi = Math.sqrt(2.0 * Math.PI);

    if (y0 <= 0.0) {
        throw new IllegalArgumentException();
    }
    if (y0 >= 1.0) {
        throw new IllegalArgumentException();
    }
    code = 1;
    y = y0;
    if (y > (1.0 - 0.13533528323661269189)) { /* 0.135... = exp(-2) */
        y = 1.0 - y;
        code = 0;
    }

    if (y > 0.13533528323661269189) {
        y = y - 0.5;
        y2 = y * y;
        x = y + y * (y2 * polevl(y2, P0, 4) / p1evl(y2, Q0, 8));
        x = x * s2pi;
        return (x);
    }

    x = Math.sqrt(-2.0 * Math.log(y));
    x0 = x - Math.log(x) / x;

    z = 1.0 / x;
    if (x < 8.0) {
        x1 = z * polevl(z, P1, 8) / p1evl(z, Q1, 8);
    } else {
        x1 = z * polevl(z, P2, 8) / p1evl(z, Q2, 8);
    }
    x = x0 - x1;
    if (code != 0) {
        x = -x;
    }
    return (x);
}

有人可以帮我解决这个问题吗?我应该修复我的代码还是与Java 8有关。

由于


我切换回Java 7,它工作正常。我不确定我是否应该更改所有注释以使其使用Java 8进行编译,或者我可以调整一些Java选项来进行编译,但我认为这是一个坏主意。我可能会修复它以使用Java 8编译,但我想知道Java 8中的动机(尝试解析我的注释并在编译期间给出错误)。

1 个答案:

答案 0 :(得分:3)

问题是您的HTML评论包含行0 < y < exp(-2)小于符号<也是HTML标记的开头,因此Javadoc认为您正在尝试制作另一个HTML标记。

如果您使用&lt;替换小号,那么它应该可以正常工作

0 &lt; y &lt; exp(-2)

可替换地,  您可以使用{@code } javadoc标记来包装方程而不是<tt>。代码标签知道不要将内容呈现为HTML

{@code 0 < y < exp(-2)}