java反映Groovy脚本中声明的函数 2 周,2 日 Questions & Answers 869 有没有一种方法可以获取Groovy脚本中声明的函数的反射数据,这些函数是通过GroovyShell对象进行计算的?具体来说,我想枚举脚本中的函数并访问附加到它们的注释
# 1 楼答案 将这个放到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");
# 2 楼答案 经过一些实验,我发现这是最简单的方法: GroovyShell shell = new GroovyShell(); Script script = (Script)shell.parse(new FileReader("x.groovy")); Method[] methods = script.getClass().getMethods(); method数组具有脚本中定义的所有函数,我可以从中获取注释
# 1 楼答案
将这个放到Groovy脚本的最后一行-它将作为脚本的返回值,a-la:
然后,从Java代码可以执行以下操作:
现在,似乎没有办法直接从Java反思Groovy脚本的注释。但是,您可以在同一个Groovy脚本中实现一个方法,并从Java代码中调用该方法,例如:
# 2 楼答案
经过一些实验,我发现这是最简单的方法:
method
数组具有脚本中定义的所有函数,我可以从中获取注释