可以使用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'。