在Java中,varg函数可以这样写:
public static void foo(int ... a)
{
// method body
}
它在 Java 中被这样调用:
<OBJ>.foo(1, 2, 3);
它在 Clojure 中被这样调用:
(<OBJ>/foo (int-array [1 2 3])
是否可以在 Clojure 中编写 foo
以便在 Java 中将其作为 varg 函数调用?
最佳答案
不幸的是,有no option制作 Java 风格的可变参数方法(即接受数组并将 VARARGS (0x80) 位设置为 true 的方法)。
相反,您可以创建一个接受数组的函数(如果需要可变参数,则在 Java 中编写一个可变参数包装器)或创建 Clojure 的 [&rest]
函数和 .invoke()
带有可变参数。
关于clojure - 如何在 clojure 中编写 java varg 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51945838/