JRuby:如何在没有可选参数的情况下调用Java可变参数函数

时间:2010-04-14 10:57:26

标签: jruby variadic-functions argument-error

我的函数的签名类似于String.format(String, Object...)

我想在没有最后一个参数的情况下从JRuby调用此函数(因为它是可选的),但是我的代码抛出ArgumentErrorwrong # of arguments(1 for 2)

有没有办法只用一个参数调用这个函数就像在Java中一样?

1 个答案:

答案 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)