gpt4 book ai didi

java - 反射(reflection) Groovy 脚本中声明的函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:56:18 26 4
gpt4 key购买 nike

有没有办法获取在 Groovy 脚本中声明的函数的反射数据,这些函数已通过 GroovyShell 对象求值?具体来说,我想枚举脚本中的函数并访问附加到它们的注释。

最佳答案

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");

关于java - 反射(reflection) Groovy 脚本中声明的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12043949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com