elh*_*oim 2 java groovy abstract-syntax-tree
是否可以使用groovy ast转换代码来操作java类?
如果是,请举个例子.
如果不是,请说明原因.
是的,可以将Groovy AST Transformations与Java代码一起使用.Groovy编译为java字节码并构建在Java库上.两种语言之间的互操作性很好.
groovy网站上有一整节涉及AST转换.
以下是混合Java/Groovy应用程序的示例.您有一个标准的Java接口和实现.groovy类使用@Delegate AST转换并使用invokeMethod.
Java类:
interface IFoo {
public String someMethod(String arg1);
}
class Foo implements IFoo {
public String someMethod(String arg1) {
arg1+arg1;
}
}
Run Code Online (Sandbox Code Playgroud)
Groovy类:
class Bar implements IFoo {
@Delegate Foo foo = new Foo()
def otherMethod() {
someMethod("abcdef")
}
}
Run Code Online (Sandbox Code Playgroud)
执行新的Bar().otherMethod()将返回'abcdefabcdef'.