为了账号安全,请及时绑定邮箱和手机立即绑定

重写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;

}

}


下一个代码:

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));

}


正在回答

2 回答

自己试了一下你的代码,发现都没有错,返回的是True.....,可能是你coursesToSelect里的集合元素有问题,建议检查一下

0 回复 有任何疑惑可以回复我~
#1

山巅对弈 提问者

非常感谢!
2017-09-01 回复 有任何疑惑可以回复我~
#2

山巅对弈 提问者

谢谢,我在找找……
2017-09-01 回复 有任何疑惑可以回复我~
#3

慕仰8901921 回复 山巅对弈 提问者

你的问题找到了么 我跟你一样的问题。。。。
2017-09-25 回复 有任何疑惑可以回复我~

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方法重写的有问题 你试试这个

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

重写equals方法,怎么显示还是false

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信