-1

我的印象是,在寻找 2 ints == 之间的相等性时,测试就足够了

作为一部分equals(),我

    if (this.getDayOfWeek() != that.getDayOfMonth()) {
        return false;
    }

其中 getDayOfWeek 定义为

    public int getDayOfWeek() {
        return calendarInstance.get(Calendar.DAY_OF_WEEK);
    }

好的,所以我们int在这里得到 2 秒。两者都是 1。而且不一样(根据equals

请帮我理解为什么是1 != 1

4

2 回答 2

10
if (this.getDayOfWeek() != that.getDayOfMonth()) 

有你的问题。您正在将一周中的某一天与一个月中的某一天进行比较,这在大多数情况下可能并不相等。

但要回答你原来的问题。是的,==int对于Integer需要使用equals()

于 2013-01-23T01:36:06.437 回答
0

您是否通过打印出它们的值和类型来确保比较的两个数据相同?此外,如果您参考此http://www.leepoint.net/notes-java/other/10time/30calendar.html,则 DayOfMonth 的范围为 (1-31),而 DayOfWeek 的范围为 (0-6)

于 2013-01-23T02:06:21.597 回答