是否有一种方法可以获取Groovy脚本中声明的,通过GroovyShell对象评估过的函数的反射数据?具体来说,我想枚举脚本中的函数并访问附加到它们的注释.
解决方法:
将其放在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");
原文地址:https://codeday.me/bug/20191127/2076692.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。