避免为每条记录重新初始化 groovy shell
Avoiding reinitialsation of groovy shell for each record
我正在尝试实现以下代码:-
for(int i = 0; i < records.length; i++){
Binding binding=new Binding();
binding.setVariable("val1",records[i][0]);
binding.setVariable("val2",records[i][1]);
binding.setVariable("val3",records[i][2]);
GroovyShell shell=new GroovyShell(binding);
Object value = shell.evaluate(code);
System.out.println(value.toString());
};
我不想为每条记录一次又一次地创建 GroovyShell,但我看不到其他选项。据我所知,我无法为同一个 groovy shell 提供新的绑定,因为绑定只能在创建 shell 时提供,之后不能提供。
我尝试在创建 groovy shell 后更改绑定对象,但它给我一个错误。
除了为每条记录一次又一次地重新初始化 groovy shell 之外,我还有其他选择吗?我只想将变量 record[i][0]、record[i][1]、record[i][2] 传递给 shell.
Script script = new GroovyShell().parse(code);
for(int i = 0; i < records.length; i++){
Binding binding=new Binding();
binding.setVariable("val1",records[i][0]);
binding.setVariable("val2",records[i][1]);
binding.setVariable("val3",records[i][2]);
script.setBinding(binding);
Object value = script.run();
System.out.println(value.toString());
};
我正在尝试实现以下代码:-
for(int i = 0; i < records.length; i++){
Binding binding=new Binding();
binding.setVariable("val1",records[i][0]);
binding.setVariable("val2",records[i][1]);
binding.setVariable("val3",records[i][2]);
GroovyShell shell=new GroovyShell(binding);
Object value = shell.evaluate(code);
System.out.println(value.toString());
};
我不想为每条记录一次又一次地创建 GroovyShell,但我看不到其他选项。据我所知,我无法为同一个 groovy shell 提供新的绑定,因为绑定只能在创建 shell 时提供,之后不能提供。
我尝试在创建 groovy shell 后更改绑定对象,但它给我一个错误。
除了为每条记录一次又一次地重新初始化 groovy shell 之外,我还有其他选择吗?我只想将变量 record[i][0]、record[i][1]、record[i][2] 传递给 shell.
Script script = new GroovyShell().parse(code);
for(int i = 0; i < records.length; i++){
Binding binding=new Binding();
binding.setVariable("val1",records[i][0]);
binding.setVariable("val2",records[i][1]);
binding.setVariable("val3",records[i][2]);
script.setBinding(binding);
Object value = script.run();
System.out.println(value.toString());
};