0

我试图否定一个多项式表达式,以便以下测试是正确的,我的多项式表达式被定义为Term(coefficient, exponent). 所以我的public Term negate() throws Overflow方法通过了这些测试。

Term(min,2) -> expected = Overflow
Term(-7,2) -> expected = (7,2)
Term(0,2) -> expected = (0,2)
Term(7,2) -> expected = (-7,2)
Term(max,2) -> expected = (-max,2)

编辑:我在 Term 中有以下方法:

public Term negate() throws Overflow {

}

以及 Term 构造函数中的以下内容:

public Term(int c, int e) throws NegativeExponent{
    if (e < 0) throw new NegativeExponent();
    coef = c;
    expo = (c == 0 && e != 0) ? 0 : e;
}

上面的测试在一个单独的 JUnit 文件中,但我试图让该negate()方法通过测试。

4

1 回答 1

3

我只能回答这个问题,因为我回答了你之前的一个问题......所以你可能想在你的帖子中澄清一点。

也许你想要

public Term negate() throws Overflow, NegativeExponent {
    if (coef == min)
        throw new Overflow();
    return new Term(-coef, expo);
}

您可能还需要考虑重命名Overflow为更具体的名称(以便将其与 a 完全区分开来StackOverflowError)。

于 2012-11-17T00:07:02.600 回答