[英]FindBugs: overridden equals() causing static code analysis error EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS
我收到了FindBugs錯誤,我很困惑如何解決。 由於這是舊的,遺留的代碼,因此我無法做太多事情。 equals()
實現,雖然不是很完美,但是可以完成工作,但是在靜態代碼分析時顯示錯誤。
FindBugs錯誤:
EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS等於檢查不兼容的操作數
對於如何解決這個問題,有任何的建議嗎?
我確實做了一些調整,但無法防止出現此錯誤。
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;
}
}
可能是FindBugs在equals
方法的第三行觸發:
if (this.getAccountId().equals(o)))
這里有些奇怪。 您將this.getAccountId()
與整個對象o
進行比較。
只需修復此行,一切都應該很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.