我对java很新,我只是想了解@Override一下这些equals()和hashcode()方法.
我知道equals方法要正确,它需要:
a.equals(a)a.equals(b) 然后 b.equals(a)a.equals(b) && b.equals(c) 然后 a.equals(c) ! a.equals(null)我在努力确定上述属性中的哪一个并且在编写equals方法的上面时并不满意.
我知道eclipse可以为我生成这些,但是因为我还没有完全理解这个概念,所以写出来可以帮助我学习.
我已经写出了我认为正确的方法,但是当我查看eclipse生成的版本时,我似乎"缺少"某些方面.
例:
public class People {
private Name first; //Invariants --> !Null, !=last
private Name last; // !Null, !=first
private int age; // !Null, ! <=0
...
}
Run Code Online (Sandbox Code Playgroud)
我写的:
public boolean equals(Object obj){
if (obj == null){
return false;
}
if (!(obj instanceof People)){
return false;
}
People other = (People) obj;
if (this.age != …Run Code Online (Sandbox Code Playgroud)