前两天看《软件研发》,上面阎宏的一篇文章很好,说的是关于equals。一共有三种equals.
1:同一个对象。在java中就是reference相等,即==的情况。
public boolean equals(Object obj){
if (this == obj) {
return true;
}
return false;
}
2:value相等。也就是两个对象所有的值都是相等的。
public class Person{
String Id;
String name;
public person(String Id,String name){
this.Id = Id;
this.name = name;
}
get set .......
public boolean equals(Object obj){
if (this == obj) {
return true;
}
if (obj instanceof Person) {
Person anotherPerson = (Person)obj;
if (this.getID().equals(anotherPerson.getID())
&& this.getName().equals(anotherPerson.getName())){
return true;
}
}
}
return false;
}
}
Person A = new Person("100200","xiaowang");
Person B = new Person("100200","xiaowang");
A.equals(B);
3:key相等。也就是关键字相等就可以。
public boolean equals(Object obj){
if (this == obj) {
return true;
}
if (obj instanceof Person) {
Person anotherPerson = (Person)obj;
if (this.getID().equals(anotherPerson.getID()) ){
return true;
}
}
}
return false;
}
}