可以使用groovy ast转换代码来操纵Java类吗?

如果是,请举一个例子。

如果否,请说明原因。

最佳答案

是的,可以将Groovy AST转换与Java代码一起使用。 Groovy编译为Java字节码,并建立在Java库上。两种语言之间的互操作性很好。

在groovy站点上有一个完整的章节涵盖了AST Transformations

这是Java / Groovy混合应用程序的示例。您具有标准的Java接口和实现。常规类使用@Delegate AST转换,还使用invokeMethod。

Java类:

interface IFoo {
    public String someMethod(String arg1);
}

class Foo implements IFoo {
    public String someMethod(String arg1) {
        arg1+arg1;
    }
}


Groovy类:

class Bar implements IFoo {
    @Delegate Foo foo = new Foo()
    def otherMethod() {
        someMethod("abcdef")
    }
}


执行新的Bar()。otherMethod()将返回'abcdefabcdef'。

07-24 09:34
查看更多