为什么执行重写完equals方法后,结果还是false

@Override

public boolean equals(Object obj){

//是不是对象调用equals方法来和自己比较

//结果返回TRUE,然后执行权回到主方法中

if(this==obj){

return true;

}

//被比较的对象obj是不是空的,由于只有非空对象才能调用equals方法,

//所以若obj是空对象,则结果肯定是FALSE

if(obj==null){

return false;

}

//判断被比较对象obj的实例是不是Course类型的

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;

}

}

  

}


--------------------------------------------------------------------

public void testListContains(){

//取得备选课程的第0个元素

Course course=coursesToSelect.get(0);

//打印输出coursesToSelect是否包含course对象

System.out.println("取得课程:"+course.name);

//某个序列是否包含某个对象,包含返回true,否则返回false

System.out.println("备选课程中是否包含课程:"+course.name+","

+coursesToSelect.contains(course));

//创建一个新的课程对象,ID和名称,与course对象完全一样

Course course2=new Course(course.id,course.name);

System.out.println("新创建课程:"+course2.name);

System.out.println("备选客课程中是否包含课程:"+course2.name+","

+coursesToSelect.contains(course2));


慕仰8901921
浏览 1320回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java