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)

編集:私は用語内に次の方法があります:

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

私はあなたの以前の質問の1つに答えたのでこれに答えることができます...それであなたはあなたの投稿でもう少し明確にしたいかもしれません。

おそらくあなたが望む

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

Overflow(と完全に区別するために)より具体的な名前に変更することも検討してStackOverflowErrorください。

于 2012-11-17T00:07:02.600 に答える