我知道应该小心自动取消装箱,因为未装箱的引用可以为空。为什么自动装箱也被标记为警告?我在这里缺少一些陷阱吗?
答案 0 :(得分:6)
如果您不期望性能问题(在微优化方面),您可以安全地禁用此警告。这只是一个指示,以防你不知道自动拳击发生在这里。在业务逻辑代码中,您有I / O开销(由于数据库事务或磁盘访问),自动装箱绝不是问题。
答案 1 :(得分:6)
我打算禁用此Eclipse警告,但以下文章让我考虑不要。我还不完全确定,但在我看来,这些可能是避免自动装箱的好理由。
https://effective-java.com/2010/05/the-advantages-and-traps-of-autoboxing/
答案 2 :(得分:3)
自动装箱可能会导致开发人员创建与“删除”收集方法相关的错误,但这可能是一个相当模糊的错误。
当我使用随机数生成器选择要从ArrayList中删除的项的索引时,我遇到了这个错误。生成器返回一个long原语,我不小心尝试将其用作List.remove(int index)的参数。编译器将long转换为Long并在List.remove(Object o)中使用它,这给出了完全不同的行为。幸运的是,断言声明很快就发现了错误。
根据对“删除”这个问题的讨论,其他人遇到了类似的问题,他们的int出乎意料地像整数一样,虽然我不明白这是怎么回事。 Why aren't Java Collections remove methods generic? (见ScArcher2的评论)