我得到FindBugs錯誤,我很困惑如何解決。由於這是舊的,遺留的代碼,我不能做太多的事情。 equals()
實現,並不完美,但它的工作,但靜態代碼分析顯示錯誤。FindBugs:重寫equals()導致靜態代碼分析錯誤EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS
FindBugs的錯誤:
EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS Equals checks for incompatible operand
關於如何解決此問題有什麼建議?
我做了一些調整,但無法防止此錯誤。
class Account extends ManagedAccount{
String accountId;
public void setAccount(EntityId value) {
//some setter
}
void EntityId getAccountId() {
return EntityId;//EntityId is some class
}
public boolean equals(Object o) {
if (o instanceof Account) {
if (this.getAccountId().equals(o))) {
return super.equals(o);
}
}
return false;
}
}
'accountId'令人困惑,因爲a)這裏沒有使用它,b)'getAccountId'返回一些其他'EntityId'字段。 –