2

我有一个签名类似于String.format(String, Object...).

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

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

4

1 回答 1

1

将可变参数包装到 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> 

如果您只想跳过可变参数,请改为传递一个空的 Java 数组

  jruby-1.4.0 > java.lang.System.out.format('foo ', [].to_java) 
于 2010-04-27T15:03:31.373 回答