课程
/后端开发
/Java
/Java入门第三季
如果只重载ID或者name中的一个的时候,返回的是true,但是重载两个的时候就会返回false了,这是为什么呢?
2016-04-12
源自:Java入门第三季 6-1
正在回答
用eclipse自动生成equals方法,默认的就是object形式,即是
public boolean equals(object obj){
return(this==obj); } 就是你只打一个勾,选择一个参数的时候。但是当你选择两个参数的时候 ,就是重写了equals的方法,你去看看string时候的equal和object的区别,就会明白
看来是我没有表述清楚。我的意思是用eclipse自动生成equals方法,生成的时候把ID,name两个属性都打上勾,然后再main函数中判断的时候,比如说,输入名字判断课程是否存在,按道理应该是输出true的,但是会输出false。 如果在生成equals方法的时候仅仅打一个勾,即只选择ID或者name,那么判断的时候便能输出true.
重载两个参数我觉得你在比较的时候两个就都要比较用&&
举报
Java中你必须懂得常用技能,不容错过的精彩,快来加入吧
2 回答为什么我重写了equals方法结果还是返回false呢
1 回答在Course类中定义name和id用的是private
2 回答equals()不就是比较内容吗?为什么会返回false
1 回答为什么在Course中重新定义equals方法?
4 回答Course 重写equals