【发布时间】:2017-07-13 22:02:51
【问题描述】:
我正在使用 Groovy 脚本和 Java,我是这个主题的新手。 我正在尝试从 groovy 脚本创建一个 java 类 (A) 的多个实例并将它们传递给列表,然后将此列表传递给一个新类 (B)。
我的 B java 文件是:
public class B {
public void getValues(List<A> values) {...}
}
我的一个java文件是:
public class A {
public long num;
public A(long num){
this.num = num;
}
}
我的主要 java 文件是:
GroovyScriptEngine groovyScriptEngine = new GroovyScriptEngine(/*path to file.groovy*/);
Binding binding = new Binding();
binding.setVariable("b", new B());
groovyScriptEngine.run("file.groovy", binding);
我的 file.groovy 是:
def myList = []
myList.add(new A(1))
myList.add(new A(2))
myList.add(new A(3))
b.getValues(myList)
我在运行我的应用程序时不断收到此异常 线程“主”groovy.lang.MissingPropertyException 中的异常:没有这样的属性:A 用于类:文件
当我将 A 添加到 java groovy 初始化时 binding.setVariable("a", new A());
我在列表中加入了 A 的 3 个对象,但它们都在 num 中包含值 3(可能列表中的所有 3 个对象都是同一个对象)。
感谢我为解决这个问题而获得的所有帮助。
【问题讨论】:
-
导入.path.to.my.classes.A; // 附带说明一下,您可能应该将函数“getValues”重命名为“setValues”,但我只能假设没有实现
-
工作感谢您的帮助,getValues 仅用于示例,但您是对的
标签: java groovy groovyscriptengine