Tôi đã xây dựng một lớp với một String
trường. Sau đó, tôi tạo hai đối tượng và tôi cũng phải so sánh chúng bằng ==
toán tử .equals()
. Đây là những gì tôi đã làm:
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));
}
}
Sau khi biên dịch, kết quả là nó sai hai lần. Tại sao nó sai nếu hai đối tượng có cùng trường - "thử nghiệm"?
equals
vàequals2
: bất cứ khi nào bạn có một cái gì đó ở dạngif(a) { return true; } else { return false; }
có thể bạn chỉ cần viếtreturn a
.