比如说这里有一个类
class GG{
private String name;
public GG(String name){
this.name=name;
}
}
然后我们定义了两个对象
GG g1=new GG("1") 和 GG g2=new GG("1")
如果直接比较 g1==g2将会返回false;因为比较的是两个的引用。这里我们需要重写他们的equals 和 hashCode方法。
class GG{
private String name;
public GG(String name){
this.name=name;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GG other = (GG) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
这样再次比较g1==g2 将会返回true;
这里的equals和hashCode方法重写可以调用myEclipse 自动生成