我收到一个我不太明白的错误。我的目标是创建一个简单的程序,添加,减去,乘以和除去复数。我的ComplexNumber类编译正确,但是当我尝试使用我的Tester类的第一个测试用例进行编译时,它给了我这个错误:
(*)
这是我的添加方法
ComplexNumberTest.java:37: error: method add in class ComplexNumber cannot be applied to given types;
assertEquals(test1.add()==0);
^
required: ComplexNumber
found: no argument
reason: actual and formal arguments differ in length
这是我的Tester课程
import java.lang.ArithmeticException;
public class ComplexNumber{
private float a; //real
private float b; //imaginary
public ComplexNumber(float a,float b)
{
this.a = a;
this.b = b;
} //end constructor
public ComplexNumber add(ComplexNumber otherNumber){
ComplexNumber newComplex;
float newA = a + otherNumber.getA();
float newB = b + otherNumber.getB();
newComplex = new ComplexNumber(newA, newB);
return newComplex;
}//end add
我觉得解决方案相当简单,而且我已经盯着它看了太久。谢谢你的任何建议。
答案 0 :(得分:3)
错误说明了一切:
ComplexNumberTest.java:37: error: method add in class ComplexNumber cannot be applied to given types;
assertEquals(test1.add()==0);
^
required: ComplexNumber
found: no argument
reason: actual and formal arguments differ in length
当你试图使用add()
时,它没有发现任何争论。它还说它在论证中需要ComplexNumber
。
public ComplexNumber add(ComplexNumber otherNumber){
ComplexNumber newComplex;
float newA = a + otherNumber.getA();
float newB = b + otherNumber.getB();
newComplex = new ComplexNumber(newA, newB);
return newComplex; }//end add
您定义add
要求将另一个ComplexNumber
作为参数传递,当您将其用作test1.add()
时,您还没有完成。
此外,根据add
的方法签名,它将永远不会像你在断言中所假设的那样返回0。