gpt4 book ai didi

java - 在 Java 中嵌入 Groovy(绑定(bind))

转载 作者:行者123 更新时间:2023-12-02 05:19:29 27 4
gpt4 key购买 nike

我尝试将变量绑定(bind)到 Groovy 并从 Groovy 返回 zu Java:

Java代码:

Binding binding = new Binding();
binding.setVariable("SRESULT", "foo");
GroovyShell gs = new GroovyShell(binding);
gs.evaluate(script);
String sResult = (String) gs.getContext().getVariable("SRESULT");
System.out.println("FROM GROOVY: " + sResult);

常规代码:

class Est {  
static SRESULT
public static void main(String[] args) {
println 'From Java: '+SRESULT
SRESULT = 'bar'
}
}

输出:

From Java: foo
FROM GROOVY: foo

我的问题:我想更改 Groovy 中的 SRESULT 并有权访问 Java 中的值。

有人可以帮我吗?

最佳答案

绑定(bind)仅适用于脚本,不适用于。如果您的 Groovy 代码是一个脚本,即只有 main 方法的内容,没有周围的类主体

println 'From Java: '+SRESULT
SRESULT = 'bar'

然后它就会产生你期望的结果。特别是,您不得在脚本中声明 SRESULT 变量,即

def SRESULT = 'bar'

不会工作。这是因为声明(使用 def 或显式类型)在脚本内创建局部变量,它们不会分配给绑定(bind)。

关于java - 在 Java 中嵌入 Groovy(绑定(bind)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15089593/

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