我的函数的签名类似于String.format(String, Object...)
。
我想在没有最后一个参数的情况下从JRuby调用此函数(因为它是可选的),但是我的代码抛出ArgumentError
(wrong # of arguments(1 for 2)
)
有没有办法只用一个参数调用这个函数就像在Java中一样?
答案 0 :(得分:1)
将varargs包装到Java数组中
jruby-1.4.0 > java.lang.System.out.format('foo %d, %d, %d, %d, %d', [1, 2, 3, 4, 5].to_java)
foo 1, 2, 3, 4, 5 => #<Java::JavaIo::PrintStream:0x79ef3ccd>
如果你想要的只是跳过varargs,那么传递一个空的Java数组
jruby-1.4.0 > java.lang.System.out.format('foo ', [].to_java)