代码之家  ›  专栏  ›  技术社区  ›  b.roth

从Java 1.4到Java 6:更新遗留代码的自动化工具吗?

  •  5
  • b.roth  · 技术社区  · 15 年前

    我们的系统将经过一个平台升级,包括用Java 6替换Java 1.4。

    理想情况下,我们希望使用自动化工具尽可能地向代码引入泛型和枚举,然后,显然,我们将审查这些更改。你有什么工具可以推荐吗?

    4 回复  |  直到 15 年前
        1
  •  5
  •   Roman    15 年前

    Intellij IDEA为您提供了生成遗留集合的特殊工具。

        2
  •  6
  •   Michael Borgwardt    15 年前

    介绍 代码的泛型和枚举 尽可能

    这种工具被称为“程序员”。当它以完全自动化的形式出现时,你将失业(并且可能会把你的日子作为一种有趣的消遣,分散你的新机器人霸主的注意力)。

    说真的,就是这样, 方式 超越了可以自动完成的工作,特别是枚举的引入。集合的泛型类型参数可以从上下文派生,但只能用于简单的情况。

        3
  •  1
  •   Adamski    15 年前

    迈克尔是正确的,因为这不能自动完成。考虑到这一点,您可以考虑一种分阶段的方法,从生成API/接口(例如子系统之间)开始,在此时将集合强制转换为正确的类型。您还可以添加断言来验证这些强制转换是否有效,然后可以在测试后删除这些强制转换。

    显然,转换并不理想,但它意味着您可以在早期(假设这是一个基于API的系统)更新API,然后在以后“纠正”内部结构。

        4
  •  1
  •   Stephen C    15 年前

    我不相信将旧代码库“基因化”一定是个好主意:

    • 它不会提高性能,因为当使用泛型时(在幕后)会发生相同的类强制转换,就像使用带有显式类型强制转换的原始类型时一样。

    • 它不太可能修复错误。可能已经发现并修复了由强制转换到错误类型引起的重大错误。

    所以它唯一能做的就是让代码更可读一点。而且在不利的方面,您有进行更改和测试的努力,以及可能引入新bug的风险。