从Java1.4到Java6:有没有自动更新遗留代码的工具?
我们的系统将经历一次平台升级,包括用Java 6替换Java 1.4从Java1.4到Java6:有没有自动更新遗留代码的工具?,java,Java,我们的系统将经历一次平台升级,包括用Java 6替换Java 1.4 理想情况下,我们希望尽可能使用自动化工具向代码中引入泛型和枚举,然后,显然,我们将审查更改。有什么工具可以推荐吗?IntelliJ IDEA为您提供了一种特殊的工具,用于生成遗留集合 自动引入的工具 代码的泛型和枚举 尽可能 这种工具被称为“程序员”。当它以完全自动化的形式出现时,你将失业(并且可能会把你的日子作为新的机器人霸主的有趣的消遣) 说真的,这远远超出了自动完成的范围,尤其是引入枚举。集合的泛型类型参数可能可以从上下
理想情况下,我们希望尽可能使用自动化工具向代码中引入泛型和枚举,然后,显然,我们将审查更改。有什么工具可以推荐吗?IntelliJ IDEA为您提供了一种特殊的工具,用于生成遗留集合 自动引入的工具 代码的泛型和枚举 尽可能 这种工具被称为“程序员”。当它以完全自动化的形式出现时,你将失业(并且可能会把你的日子作为新的机器人霸主的有趣的消遣)
说真的,这远远超出了自动完成的范围,尤其是引入枚举。集合的泛型类型参数可能可以从上下文派生,但只能用于简单的情况。Michael是正确的,因为这不能自动完成。考虑到这一点,你可以考虑一种阶段性的方法,通过将你的API /接口(例如在子系统之间)转换成正确的类型来开始。您还可以添加断言来验证这些强制转换是否有效,稍后可以在测试后删除这些断言
显然,强制转换并不理想,但它意味着您可以在早期更新API(假设这是一个基于API的系统),然后在以后“更正”内部内容。我不认为“生成”旧代码库一定是个好主意:
- 它不会提高性能,因为当您使用泛型时(在幕后)会发生与使用带有显式类型转换的原始类型时相同的类转换
- 它不太可能修复bug。可能已经发现并修复了由于转换到错误类型而导致的重大错误
所以它唯一能做的就是让代码更具可读性。不利的一面是,您需要努力进行更改和测试,并且有可能引入新的bug。希望我能投票两次。在这种情况下,自动生成的代码很糟糕。很难对枚举不一致。但是关于泛型的部分和关于自动生成代码的注释让我觉得你们只使用Eclipse。我使用Eclipse,但我也使用IntelliJ,坦率地说,这种迁移不应该自动进行。这是一个重构和重新设计应用程序的好机会,这些不仅仅是语言的特性,它的范式也会改变;list.add(25.0);list.add(新形状(1,1,2,2));然后IntelliJ将完成这项工作。@Bruno:你真的应该从成本与收益的角度来考虑:你的代码在没有泛型和枚举的情况下工作,如果你没有引入所有好的新功能,它也不会停止工作。它们只是使代码更易于维护。因此,在稳定、经过测试且不需要太多维护的代码中引入它们并没有多大意义。是的,谢谢。我想那将是最接近我所寻找的。