class Name {
private String fName, lName;
public Name(String fName, String lName) {
this.fName = fName;
this.lName = lName;
}
public String toString() {
return fName + "_ " + lName;
}
public boolean equals(Name n) {
return (fName.equals(n.fName)) && (lName.equals(n.lName));
}
}
//
大家请看,我上面的类重写了equals()了吗?
答案是没有,因为原方法是boolean equals(Object o)
参数类型必需一样,这个问题困扰了我很长时间,javac的时候也不会出错,
这样的错误实在不好查,还是一个朋友帮我解决的,谢谢他!!
/
正确的答案应该是这个样子的:
class Name {
private String fName, lName;
public Name(String fName, String lName) {
this.fName = fName;
this.lName = lName;
}
public String toString() {
return fName + "_ " + lName;
}
public boolean equals(Object n) {
return (fName.equals(((Name)n).fName)) && (lName.equals(((Name)n).lName));
}
}