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;
}
}
下一个代码:
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));
}
自己试了一下你的代码,发现都没有错,返回的是True.....,可能是你coursesToSelect里的集合元素有问题,建议检查一下
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方法重写的有问题 你试试这个