【发布时间】:2017-11-05 10:15:14
【问题描述】:
我在 Java class 中使用 Groovy Interpreter,我正在尝试定义一个方法并调用它,这是我的代码:
Binding binding = new Binding();
binding.setVariable("aa", 1);
binding.setVariable("bb", 2);
GroovyShell shell = new GroovyShell(binding);
shell.evaluate("int add(int a,int b){return (a+b)}");
int value =(int) shell.evaluate("add(aa,bb);");
System.out.println(value);
我遇到了这个错误:
线程“主”groovy.lang.MissingMethodException 中的异常:否 方法签名:Script2.add() 适用于参数类型: (java.lang.Integer, java.lang.Integer) 值:[1, 2] 可能 解决方案:any()、wait()、run()、run()、find()、wait(long, int)
请告诉我如何在 groovy 中定义一个函数以及为什么我的代码不起作用。
最好的问候,
【问题讨论】:
-
如果将所有 Groovy 代码粘贴到一个字符串中并计算一次,会发生什么情况?基于类名
Script2,我认为shell独立处理每个evaluate调用。 -
@chrylis 你说得对,当我在一个
shell评估中评估所有脚本时,这有效,谢谢