以下是我必须做安全分析的代码,发现错误是在这种方法中发现了错误。

 // Equals Method
    public boolean equals(Date dateIn){
       if(day == dateIn.day && month == dateIn.month && year == dateIn.year)
           return true;
        else
           return false;
    }





  Find Bugs说:此类定义了equals()的协变版本
  方法,但继承在中定义的常规equals(Object)方法
  基础java.lang.Object类。该类可能应该定义一个
  boolean equals(Object)方法。


我如何摆脱这个错误,任何人都可以帮忙吗?

最佳答案

equals()应该以Object作为参数,以匹配其覆盖的super方法。使用注释@Override强制执行此操作。

// Equals Method
@Override
public boolean equals(Object o){
    if (!(o instanceof Date))
        return false;
    Date dateIn = (Date) o;
    if(day == dateIn.day && month == dateIn.month && year == dateIn.year)
        return true;
    else
        return false;
}

10-06 07:53