我有一个带有两个参数的函数:
private void function(LinkedList<String> a, LinkedList<String> b)
我正在使用 Groovy,因此我还需要在程序中调用此函数:
LinkedList<String> list1 = new LinkedList<String>();
LinkedList<String> list2 = new LinkedList<String>();
list1.add("A");
list1.add("B");
list1.add("C");
list2.add("A");
list2.add("B");
String command = "function(list1, list2)";
Binding binding = new Binding();
GroovyShell shell = new GroovyShell(binding);
Object value = shell.evaluate(command);
但是当我调用它并传递值时,我看到的是:
function([A, B, C],[A, B])
当然,这违反了 java 语法,编译器会返回错误。 有没有办法传递真实值?
最佳答案
如果您确实想要内联调用(并且在 Groovy 中编写此调用),您只需声明一个新的 LinkedList
并将列表作为参数即可:
String command = "function(new LinkedList(['A','B', 'C']), new LinkedList(['A', 'B']))";
否则你可以将它们添加到绑定(bind)中,就像@tim_yates所说:
binding.setProperty("list1", list1);
binding.setProperty("list2", list2);
关于java - 如何在 Groovy 中传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40747139/