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

为什么要重写equals方法呢

新实例化的课程对象本来就不在courseToSelect集合中啊,contains方法当然会返回false,为什么非得重写equals方法让contains返回true呢?

正在回答

2 回答

要看比较的目的了,是比较对象(引用)还是比较实际值了。

默认equals在比较俩个对象的时候,是看他们是否指向同一个地址的。

但有时候我们希望比较俩个对象的某些属性值是否相同,如果相同的话就认为他们的equals为true。

比如:

Student s1 = new Student(1,”name1”);
Student s2 = new Student(1,”name1”);

如果用默认的equals比较s1和s2 的话,结果肯定为false,但是我们只是希望

比较他们的name是否相同,这个时候就需要重写equals方法了。


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

fenkapian 提问者

非常感谢!
2016-06-12 回复 有任何疑惑可以回复我~

其实我感觉不用contains方法,直接用course2.name==name  这个方法还简单粗暴

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

举报

0/150
提交
取消

为什么要重写equals方法呢

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