我建立了一个String
领域的课程。然后,我创建了两个对象,我也必须使用==
运算符对其进行比较.equals()
。这是我所做的:
public class MyClass {
String a;
public MyClass(String ab) {
a = ab;
}
public boolean equals(Object object2) {
if(a == object2) {
return true;
}
else return false;
}
public boolean equals2(Object object2) {
if(a.equals(object2)) {
return true;
}
else return false;
}
public static void main(String[] args) {
MyClass object1 = new MyClass("test");
MyClass object2 = new MyClass("test");
object1.equals(object2);
System.out.println(object1.equals(object2));
object1.equals2(object2);
System.out.println(object1.equals2(object2));
}
}
编译后显示两次错误。如果两个对象具有相同的字段-“测试”,为什么会为假?
equals
并且equals2
:每当您拥有某种形式的表格时if(a) { return true; } else { return false; }
,都可能应该写return a
。