以下是我必须做安全分析的代码,发现错误是在这种方法中发现了错误。
// 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;
}