我正在使用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)
我在线程“main”groovy.lang.MissingPropertyException中运行我的App Exception时不断收到此异常:没有这样的属性:A for class:file
当我向Java groovy初始化binding.setVariable(“a”,new A())添加A时;
我在列表中得到了3个A对象,但是所有这些对象都包含num中的值3(列表中的所有3个对象可能都是同一个对象) .
感谢我能解决这个问题的所有帮助 .
1 回答
现在我测试了它,让我们把它写下来作为答案:
还有其他方法可以实现,例如可以使用绑定(iirc)传递的自动导入,但最好还是(imo)编写导入,因为主程序可能不知道脚本会做什么 .
TL:博士
我只想要代表:D