gpt4 book ai didi

java - AssertionError - 虚数和实数加法器

转载 作者:行者123 更新时间:2023-12-02 01:26:33 24 4
gpt4 key购买 nike

我收到错误:

java.lang.AssertionError: expected: learning.java.advancedoop2.MyComplex<(2.0+10.0i)> but was: learning.java.advancedoop2.MyComplex<(2.0+10.0i)>
Expected :learning.java.advancedoop2.MyComplex<(2.0+10.0i)>
Actual :learning.java.advancedoop2.MyComplex<(2.0+10.0i)>

我现在正在研究 MyComplex 类,如 3.1 所示: http://www.ntu.edu.sg/home/ehchua/programming/java/J3f_OOPExercises.html#zz-2

以下是相关代码的一部分:

package learning.java.advancedoop2;

public class MyComplex {

private double real = 0.0;
private double imag = 0.0;

public MyComplex() {

}

public MyComplex add(MyComplex right) {
this.imag += right.imag;
this.real += right.real;
return this;
}
}

我尝试进行测试,当我运行它们时,我遇到的错误是好的,这是我的测试代码的一部分:

@Test
public void add() {

MyComplex myComplexFirst = new MyComplex(1, 5);
MyComplex myComplexSecond = new MyComplex(1, 5);
MyComplex myComplexThird = new MyComplex(myComplexFirst.getReal() + myComplexSecond.getReal(), myComplexFirst.getImag() + myComplexSecond.getImag());
myComplexFirst.add(myComplexSecond);
MyComplex newComplex = myComplexFirst;
assertEquals(newComplex, myComplexThird);
}

最佳答案

您是否重写了自定义类中的 equals 方法?

如果您没有这样做,默认行为是比较引用。这可以解释您收到的错误消息。

这很令人困惑,因为您已经重写了 toString 方法,该方法将两个实例显示为具有相同的值。

关于java - AssertionError - 虚数和实数加法器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56830361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com