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

问题描述:

我有一个类似于String.format(String, Object...)的签名的函数。JRuby:如何调用没有可选参数的Java可变参数函数

我想打电话从JRuby的这个功能没有最后的参数(因为它是可选的),但我的代码引发ArgumentErrorwrong # of arguments(1 for 2)

有没有办法来调用只有1论点就像这个功能我会在Java中做什么?

+1

请原谅我的无知,是有一些方法来做到Java中的可选参数除了方法重载之外(即,具有不同参数的多个同名方法)? – 2010-05-04 00:15:44

+0

我不这么认为。除了方法重载和可变参数函数,我没有看到其他解决方案。 – 2010-05-05 06:56:22

包裹的可变参数到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) 
+0

我已经想通了,我可以做到这一点。我想要的是能够调用没有数组参数的方法。目前,我 手动重新开放每个班级更改方法签名。 – 2010-04-27 15:20:54

+1

我不认为Jruby可以自动为你做这件事 - 看看他们的bugtracker,这里有一个特别的提及 – Julik 2010-05-03 12:53:40