我的印象是,在寻找2 int
s == test之间的平等时,
作为equals()
的一部分,我
if (this.getDayOfWeek() != that.getDayOfMonth()) {
return false;
}
将getDayOfWeek定义为
public int getDayOfWeek() {
return calendarInstance.get(Calendar.DAY_OF_WEEK);
}
好的,我们这里得到2 int
。两者都是1.而且不一样(根据equals
)
请帮助我理解为什么1 != 1
答案 0 :(得分:10)
if (this.getDayOfWeek() != that.getDayOfMonth())
有你的问题。您要比较一周中的某一天与一个月中的某天,这可能在大多数情况下并不相同。
但回答你原来的问题。是的,==仅适用于int
但不适用于Integer
,需要使用equals()
答案 1 :(得分:0)
您是否确保通过打印出他们的值和类型来比较两个数据是否相同?另外,如果你引用这个http://www.leepoint.net/notes-java/other/10time/30calendar.html,DayOfMonth的范围是(1-31),其中DayOfWeek的范围是(0-6)