java - 如何在 Groovy 中传递值

标签 java groovy

我有一个带有两个参数的函数:

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/

相关文章:

java - 如何使用 groovy 将另一个 xml 文件内容添加到现有 xml 创建中

java - 有没有办法在方法参数中将 Java 代码片段作为 Groovy Closure 传递?

java - 如何在没有用户交互的情况下运行 servlet

java - 使用 GSON 将 POJO 序列化为具有不同名称的 JSON?

java - 通用接口(interface)错误

java - 用于 HTML5 验证的开源 Java 库?

java - Android:Java:TextView 不会改变颜色

grails - Groovy findAll和每个标签问题

java - 如何检测 PermGen 空闲内存

groovy - 如何将参数传递给 Groovy 2.0 脚本?