问答详情
源自:6-1 学生选课---判断 List 中课程是否存在

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

}


提问者:山巅对弈 2017-09-01 11:05

个回答

  • Justeasy
    2017-09-01 16:25:53
    已采纳

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

  • 不脱发的小Java
    2017-09-05 11:09:38

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