java - 有没有办法自动将 Groovy 转换为 Java?

标签 java plugins groovy code-translation

我继承了大量的 Groovy 代码,我发现由于以下几个原因难以维护:

  1. 通常很难判断变量的类型。
  2. 推论:很容易修改具有不同类型的变量,并且不知道它。
  3. 直到运行时才会发现许多错误(如果您的单元测试没有涵盖几乎所有内容,这很可怕)。
  4. 参数的类型基本被忽略。
  5. 我使用的 IDE (STS Pro) 很有用,但远远落后于 Java。例如,重构是不可用的。
  6. 建议有时可用,有时则不可用。

虽然我很欣赏该语言的紧凑性,但维护起来却困难重重。

我尝试手动将一些部分转换为 Java,这很痛苦。您是否知道任何有助于这种转换的工具或插件?

最佳答案

IntelliJ IDEA对 groovy 代码的重构有相当不错的支持。 它还有一个来自 Groovy -> Java 的源代码级转换器。大多数情况下,它会生成无法编译的代码,但它可能有助于您开始转换代码的过程。 Groovy 代码:

class HelloWorld {
def name
def greet() { "Hello ${name}" }
int add(int a, int b) {
    return a+b;
}
}

转换后的 Java 代码:

public class HelloWorld {
public GString greet() {
    return "Hello " + String.valueOf(name);
}

public int add(int a, int b) {
    return a + b;
}

public Object getName() {
    return name;
}

public void setName(Object name) {
    this.name = name;
}

private Object name;
}

关于java - 有没有办法自动将 Groovy 转换为 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5302103/

相关文章:

java - 无法声明接口(interface) : Resource busy

java - 在 Spring Boot 中向 CRUDReposity 接口(interface)添加自定义方法

php - 如何从语言菜单中删除标志

grails - 动态评估 el 表达式

testing - gradle 测试阶段?

java - java中如何判断url是否存在?

java - 如何在 Swing 中停止重复的 keyPressed()/keyReleased() 事件

laravel - 使用 Laravel/PHP 创建一个像 Wordpress 这样的基于插件的系统

java - 如何在 Eclipse 插件中编写撤消操作脚本?

java - 在 ESB mule 中发送 POST 请求