gpt4 book ai didi

java - FindBugs:重写 equals() 导致静态代码分析错误 EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS

转载 作者:行者123 更新时间:2023-11-30 08:16:12 25 4
gpt4 key购买 nike

我收到 FindBugs 错误,我很困惑如何修复。由于这是旧的遗留代码,我对此无能为力。 equals() 实现,并不完美,但完成了它的工作,但在静态代码分析时显示错误。

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;
}
}

最佳答案

FindBugs 可能会在 equals 方法的第三行触发:

if (this.getAccountId().equals(o)))

这里有一些奇怪的东西。您将 this.getAccountId() 与整个对象 o 进行比较。

只要修复这条线,一切都会好起来的。

关于java - FindBugs:重写 equals() 导致静态代码分析错误 EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29634798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com