【问题标题】:FindBugs Integer not compatible with expected argument type?FindBugs Integer 与预期的参数类型不兼容?
【发布时间】:2023-03-10 20:43:01
【问题描述】:

我正在处理一项任务,我认为我已经解决了问题,但我得到了相同的结果。使用 FindBugs 应用程序,我可以看到以下代码行:

out.writeObject(accountMap.get(i));

我收到一个错误提示:

整数与预期的参数类型字符串不兼容...

所以我通过将 int 转换为 String 来纠正它:

out.writeObject(accountMap.get(Integer.toString(i)));

具有相同的错误结果。我是不是误会了什么?

【问题讨论】:

  • 什么是accountMap
  • 将其转换为字符串应该可以,您确定错误是针对该行的吗?
  • 地图 accountMap = null;

标签: java object findbugs


【解决方案1】:

我重新创建了您的问题,Findbugs 发现了同样的错误。到目前为止一切顺利。

Integer is incompatible with expected argument type String in ...(String[]) [Scariest(1), High confidence]

然后我应用您的更改 (Integer.toString(i)) 并发现在运行 Findbugs 再次时,错误已清除(与您的观察不同)。

我怀疑你没有重新运行 findbugs?

我使用 Findbugs 版本进行了测试:3.0.1.20150306-5afe4d1

PS:这里有一些关于为什么存在错误的历史(与 Map#get 不使用泛型有关):Why is java.util.Map.get(...) not generic?

【讨论】:

  • 搞定了。出于某种原因,我不得不重新启动 Eclipse。我正在重新运行 Find Bugs 功能,虽然它给了我 UI 反馈,就好像它正在运行一样……它只是重新显示了相同的结果。这适用于我所有的错误。现在我能够实际验证我的修复程序正在实施。谢谢!
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多