是否可以将Groovy自动转换为Java?

问题描述 投票:25回答:9

我已经继承了大量的Groovy代码,由于以下几个原因,我发现很难对其进行维护:

  1. 通常很难说出变量的类型是什么。
  2. 推论:很容易用其他类型修改变量,并且不了解它。
  3. 直到运行时才会发现许多错误(如果您的单元测试不能涵盖几乎所有内容,这会很可怕)。>>
  4. 基本上忽略参数的类型。
  5. 我正在使用的IDE(STS Pro)很有用,但远远落后于Java。例如,重构不可用。
  6. 建议有时可用,而其他时候则没有。
  7. 尽管我很欣赏这种语言的简洁性,但维护起来既困难又麻烦。

我曾尝试将某些片段手动转换为Java,这很痛苦。您是否知道有助于此转换的任何工具或插件?

我已经继承了大量的Groovy代码,由于以下几个原因,我发现很难对其进行维护:很多时候,很难分辨出变量的类型。结论:很容易...

java plugins groovy code-translation
9个回答
25
投票

IntelliJ IDEA对常规代码的重构有相当不错的支持。它还具有Groovy-> Java的源代码级转换器。在大多数情况下,它会生成无法编译的代码,但这可能有助于您着手进行代码转换过程。Groovy代码:


14
投票

也许不是您想听到的答案,但是我将专注于变得更熟悉Groovy,而不是尝试将代码转换为Java。在Groovy中可以做很多事情,而这些事情根本无法很好地转换为Java(例如closures)。对Java的任何自动转换都会使代码的可读性和可读性大大降低。


4
投票

Groovy和Java语言都编译为相同的字节码(Java平台字节码)。因此,只需(a)将.groovy文件编译为.class文件; (b)使用反编译器(例如JDGUI)将.class文件反编译为.java文件。


3
投票

我的最高技巧是编写大量的单元测试


3
投票

我使用Groovy ++找到了替代解决方案。它几乎具有Groovy的所有优点,但是具有Java的性能和强大的键入功能。此外,它基于Groovy,因此显然您只需要添加一个jar文件,并在代码顶部添加“ @Typed”注释。


0
投票

一年前有一个问题。经过一到两个月的令人兴奋的欣快感后,它在现实世界的薄弱环节上变成了改变者。甚至GReclipse 2.0也没有减轻痛苦,代码变得难以管理且痛苦。您问题的简短答案-不。没有真正好的工具可以做到这一点。 GSql我用Spring JdbcTemplate替换,用回调函数关闭。所有这些都需要手动确定替换策略,因此,如果要获得良好的代码,则需要手动进行int。否则,您可能会使用一些Java反编译器,但我认为这并不是您真正想要的。


0
投票

我们将把大约1000个Groovy类更改为Java 8。


0
投票

对于有类似问题的人,可以看看GMavenPlus


0
投票

非常感谢您提供详细的答案!

© www.soinside.com 2019 - 2024. All rights reserved.