我正在编写一个关于Java的程序。我有一个带有静态方法的Adres类Read(Scanner sc):Adres。 此方法应创建Adres的新实例。它似乎创建了te实例,并且程序按预期运行。问题是我还必须编写JUnit测试。但似乎使用此方法创建的对象不等于在类外部创建的对象。我虽然它与该方法是静态的事实有关,但我找不到任何东西。这是方法:
public static Adres read(Scanner sc){
String str = sc.next();
String num = sc.next();
String pc = sc.next();
String pl = sc.next();
sc.close();
return new Adres(str, num, pc, pl);
}
这是我的等于函数:
public boolean equals(Object obj){
if (obj instanceof Adres){
Adres that = (Adres)obj;
return (this.straat == that.straat &&
this.huisnummer == that.huisnummer &&
this.postcode == that.postcode &&
this.plaats == that.plaats);
} else
return false;
}
这是我的单元测试:
public void testRead() {
Adres adres = new Adres("EduP", "238", "2624NB", "Delft");
String line = "EduP 238 2624NB Delft";
Adres adres2 = Adres.read(new Scanner(line));
assertTrue(adres.equals(adres2));
}
我还尝试使用main创建一个简单的测试,只是调用equals函数,但仍然返回false!在函数与创建的对象一起工作的地方" normal"办法。你能解释一下我做错了什么,或者我还不明白的事情吗?
谢谢,
大卫