有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据,该脚本已通过GroovyShell
目的?具体来说,我想枚举脚本中的函数并访问附加到它们的注释。
Put this到 Groovy 脚本的最后一行 - 它将作为脚本的返回值,a-la:
// x.groovy
def foo(){}
def bar(){}
this
然后,您可以从 Java 代码执行以下操作:
GroovyShell shell = new GroovyShell();
Script script = (Script) shell.evaluate(new File("x.groovy"));
现在似乎没有选项可以直接从 Java 内省 Groovy 脚本的注释。但是,您可以在同一 Groovy 脚本中实现一种方法并从 Java 代码中调用该方法,例如:
//groovy
def test(String m){
method = x.getMethod(m, [] as Class[])
assert method.isAnnotationPresent(X)
}
//java
script.getMetaClass().invokeMethod(script, "test", "foo");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)