我已经继承了大量的Groovy代码,由于以下几个原因,我发现很难对其进行维护:
尽管我很欣赏这种语言的简洁性,但维护起来既困难又麻烦。
我曾尝试将某些片段手动转换为Java,这很痛苦。您是否知道有助于此转换的任何工具或插件?
我已经继承了大量的Groovy代码,由于以下几个原因,我发现很难对其进行维护:很多时候,很难分辨出变量的类型。结论:很容易...
IntelliJ IDEA对常规代码的重构有相当不错的支持。它还具有Groovy-> Java的源代码级转换器。在大多数情况下,它会生成无法编译的代码,但这可能有助于您着手进行代码转换过程。Groovy代码:
也许不是您想听到的答案,但是我将专注于变得更熟悉Groovy,而不是尝试将代码转换为Java。在Groovy中可以做很多事情,而这些事情根本无法很好地转换为Java(例如closures)。对Java的任何自动转换都会使代码的可读性和可读性大大降低。
Groovy和Java语言都编译为相同的字节码(Java平台字节码)。因此,只需(a)将.groovy文件编译为.class文件; (b)使用反编译器(例如JDGUI)将.class文件反编译为.java文件。
我的最高技巧是编写大量的单元测试
我使用Groovy ++找到了替代解决方案。它几乎具有Groovy的所有优点,但是具有Java的性能和强大的键入功能。此外,它基于Groovy,因此显然您只需要添加一个jar文件,并在代码顶部添加“ @Typed”注释。
一年前有一个问题。经过一到两个月的令人兴奋的欣快感后,它在现实世界的薄弱环节上变成了改变者。甚至GReclipse 2.0也没有减轻痛苦,代码变得难以管理且痛苦。您问题的简短答案-不。没有真正好的工具可以做到这一点。 GSql我用Spring JdbcTemplate替换,用回调函数关闭。所有这些都需要手动确定替换策略,因此,如果要获得良好的代码,则需要手动进行int。否则,您可能会使用一些Java反编译器,但我认为这并不是您真正想要的。
我们将把大约1000个Groovy类更改为Java 8。
对于有类似问题的人,可以看看GMavenPlus
非常感谢您提供详细的答案!