Java-如何判断java自定义对象内容完全相同

Java-如何判断java自定义对象内容完全相同

灵芸 发布于 2017-04-08 字数 228 浏览 952 回复 5

比如一个自定义对象 Student 有属性 gender,name。

我定义 Student s = new Student(1,2);
Student s1 = new Student(1,2);

请问 如何知道 s 和s1 属性完全相同。 不能一个属性一个属性拿出来比。
属性有N个

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

想挽留 2017-09-09 5 楼

从OO来说, 我们不应该去 "判断java自定义对象内容完全相同"; 我们应该去问一个对象, 你和另一个对象相等么?

--说白了也就是调用equals了,呵呵

浮生未歇 2017-07-27 4 楼

java中每个Object都有一个equals方法,可以通过重写equals函数来实现这个功能。
public class Student {
private String gender;
private String name;

public String getGender() {
return gender;
}

public void setGender(String gender) {
this.gender = gender;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Student(String gender, String name) {
this.gender = gender;
this.name = name;
}

public boolean equals(Object o) {
if (!(o instanceof Student))
return false;
final Student other = (Student) o;
if (getName().equals(other.getName())
& getGender().equals(other.getGender()))
return true;
else
return false;
}
}

甜柠檬 2017-07-22 3 楼

equals方法重写,用反射XXX.getClass().getDeclaredFields(); 获取各属性来比较可以吗?

晚风撩人 2017-07-10 2 楼

不行的,我一直试过了。equals 在对象中比较的是地址。

偏爱自由 2017-07-01 1 楼

equal函数就可以比较呀 s.equal(s1);