关于自动生成equals()方法

来源:6-1 学生选课---判断 List 中课程是否存在

码农_鑫森淼焱垚

2015-09-06 09:21

这里我可以使用重写后自动生成的equals()方法吗??

这是在Sourse-Generate hasCode() and equals()

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Course other = (Course) obj;

if (course == null) {

if (other.course != null)

return false;

} else if (!course.equals(other.course))

return false;

return true;

}


写回答 关注

2回答

  • PrivateStringName
    2015-11-07 21:02:53
    已采纳

    视屏中重写了equal方法,他是比较了name的值是否相等;如果自动重写,比较的是id和name两个值都相同时候才返回true;可以手动把自动生成的id比较代码去掉,那么和手动是一样的效果;

    一下是自动生成的:

    public boolean equals(Object obj) {

         if (this == obj)

         return true;

         if (obj == null)

         return false;

         if (getClass() != obj.getClass())

         return false;

         Course other = (Course) obj;

         if (id == null) {

                     if (other.id != null)

                     return false;

         } else     if (!id.equals(other.id))

                      return false;

         if (name == null) {

                         if (other.name != null)

                         return false;

         } else     if (!name.equals(other.name))

                     return false;

         return true;

    }


    码农_鑫森淼...

    非常感谢!

    2015-11-09 16:37:07

    共 1 条回复 >

  • needself
    2015-09-16 12:09:33

    运行一遍检测一下,眼瞅着挺正确。

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题