升级到新的Java版本:代码分析

时间:2013-03-18 15:30:57

标签: java code-analysis

如果有一个代码分析工具能够在升级到新的Java版本时建议代码更改,我就会徘徊。

例如:

  • 在升级到Java 7时查找.close()调用autocloseable资源
  • 升级到Java 7时,查找具有相同正文的多个catch子句
  • 在升级到Java 5时查找不必要的手动装箱和拆箱
  • ...

现有的工具或规则(例如Checkstyle)是否有帮助?

3 个答案:

答案 0 :(得分:2)

IntelliJ有一组标记为“语言迁移”的检查,可以帮助您找到可以从新语言结构中受益的位置,例如增强的for循环。

它甚至可以立即自动将这些建议应用到整个代码库中 - 如果它当然是无风险的转换。

答案 1 :(得分:0)

Findbugs按照Java resource management: understanding Findbugs results的说明处理.close(),并且还会遇到很多其他问题。

Finsbugs处理一些有问题的拳击,就像用作==的操作数一样。 Eclipse warnings可以配置为警告您所有隐式装箱/拆箱。

我不知道任何涉及来源相同的catch身体的事情。

答案 2 :(得分:0)

我不知道专门为此设计的工具,但您可以使用一些工具进行常规代码审核,以检测或建议这些类型的升级。

  1. CodePro Analytix
  2. FindBugs的
  3. PMD(尤其是冗余捕获块的CPD部分)
  4. Checkstyle的
  5. Google的CodePro Eclipse插件提供了许多非常有用的代码分析功能,可以找到您提到的许多Java 7功能。

    PMD中的复制/粘贴检测器通常可以检测复制粘贴的代码,因此最适合查找冗余的catch块。