為什么equals 重新之后結果還是false?
代碼1:
public?void?testListContains(){
????//Course?course=?(Course)?coursesToSelect.toArray()[1];
????List?list=new?ArrayList(coursesToSelect);
????Course?course=?(Course)?list.get(0);
????System.out.println("獲取到的學生ID是:"+course.id+"?獲取到的學生姓名是:"+course.name);
????System.out.println("集合中是否包含課程"+course.name+":"+coursesToSelect.contains(course));
????Course?course2=new?Course(course.id,course.name);
????System.out.println("新創建的課程是:"?+course2.id+","+course2.name);
????System.out.println("集合中是否包含課程"+course2.name+":"+coursesToSelect.contains(course2));
????//System.out.println("一共有?"+coursesToSelect.size()+"?門課程");
}
代碼2:
@Override
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;
????????}
????}
????//return?true;
}