重寫equals方法,怎么顯示還是false
public boolean equals(Object obj){
if(this == obj){
return true;
}
if(obj == null){
return false;
}
if(!(obj instanceof Course))
return false;
Course course = (Course)obj;
if(this.name == null){
if(course.name == null)
return true;
else
return false;
}else{
if(this.name.equals(course.name))
return true;
else
return false;
}
}
下一個(gè)代碼:
public void testListContains(){
Course course = couresToSelect.get(0);
System.out.println(couresToSelect.contains(course));
Course course2 = new Course(course.id,course.name);
System.out.println(couresToSelect.contains(course2));
}
2017-09-01
自己試了一下你的代碼,發(fā)現(xiàn)都沒(méi)有錯(cuò),返回的是True.....,可能是你coursesToSelect里的集合元素有問(wèn)題,建議檢查一下
2017-09-05
public?boolean?equals(Object?obj){
????if(this==obj)
????return?true;
????if(obj==null)
????return?false;
????if(!(obj?instanceof?Course))
????return?false;
????Course?course=(Course)obj;
????if(this.name==null){
????if(course.name==null)
????????return?true;
????else
????????return?false;
????}else{
????????//?if(this.name==course.name)
????if(this.name.equals(course.name))
????????return?true;
????else
????????return?false;
????}
}
你equals方法重寫的有問(wèn)題 你試試這個(gè)