当前位置: 首页 > 知识库问答 >
问题:

用Boolean类方法比较两个日期对象

松翔
2023-03-14
public Boolean equals(Object obj) {        
    Date otherDate = (Date)obj;    
    return year == otherDate.year && month == otherDate.month && day otherDate.day;    
}

共有1个答案

盖嘉珍
2023-03-14

我不知道它有什么意义,但除非我误解了,它符合你的要求:

public class Date {

    private int year;
    private int month;
    private int day;

    // Constructor etc.

    @Override
    public boolean equals(Object obj) {        
        Date otherDate = (Date) obj;    
        return Boolean.logicalAnd(year == otherDate.year, 
                Boolean.logicalAnd(month == otherDate.month, day == otherDate.day));    
    }

    @Override
    public int hashCode() {
        return Objects.hash(year, month, day);
    }

}

我使用的是boolean类方法(boolean类中的静态方法)logicaland而不是&。由于每个参数都是在调用方法之前计算的,因此这不会像&那样缩短计算。否则会得到相同的结果。由于您有三个子条件,并且该方法只接受两个参数,所以我需要嵌套一个调用作为第一个调用中的参数之一。

如注释中所述,该方法需要返回一个原语boolean(小的b),并且应该有一个@override注释。此外,当重写equals时,最好也重写hashcode并确保相同的对象具有相同的哈希代码。

 类似资料:
  • 问题内容: 有人可以建议一种使用JavaScript 比较 两个 大于,小于和过去的 日期 的值的方法吗?这些值将来自文本框。 问题答案: 该Date对象会做你想要的东西- 构造一个每个日期,然后用它们进行比较,,或。 在,,,和运营商要求使用作为 要清楚的是,仅直接检查日期对象是否相等将不起作用 我建议您使用下拉列表或日期输入的某些类似约束形式,而不要使用文本框,以免您陷入输入验证的困境。

  • 问题内容: 如何使用Python比较两个日期以查看稍后的日期? 例如,我想检查当前日期是否超过了我创建的假期日期列表中的最后日期,因此它将自动发送电子邮件,告诉管理员更新holiday.txt文件。 问题答案: 使用方法和运算符及其种类。

  • 问题内容: 我需要在Java中比较两个日期。我正在使用这样的代码: 这是行不通的。变量的内容如下: 包含 包含 我该如何解决? 问题答案: 日期相等性取决于两个等于毫秒的日期。使用创建新的Date对象将永远不会等于过去创建的日期。Joda Time 的API简化了日期的处理。但是,仅使用Java的SDK:

  • 问题内容: 我想比较两个日期,但是我遇到了麻烦。从一个对象创建一个日期,然后手动制作另一个日期。以下代码是一个示例: 但是测试结果。我猜是因为时间的缘故。如何检查这两个日期是否相等(我的意思是年,月,日相同)? 问题答案: 要么

  • 我会如何比较以下两个日期?

  • 在爪哇中。如果我们必须将一个对象与另一个对象进行比较。我们比较该对象中的每个字段。 学生 1 对象具有标记 1、标记 2、标记 3、名称、年龄作为字段。学生 2 对象具有标记 1、标记 2、标记 3、名称、年龄作为字段。因此,要检查2名学生是否相等...我们比较每个字段。 但是,如果 Student 对象有许多字段,该怎么办?学生1对象有标记1,标记2,标记3,名称,年龄,地址,颜色,类,国家,部