JRuby: как вызвать переменную функцию Java без необязательных аргументов - PullRequest
2 голосов
/ 14 апреля 2010

У меня есть функция с подписью, похожей на String.format(String, Object...).

Я хочу вызвать эту функцию из JRuby без последних параметров (так как это необязательно), но мой код выдает ArgumentError (wrong # of arguments(1 for 2))

Есть ли способ вызвать эту функцию только с одним аргументом, как я сделал бы в Java?

1 Ответ

1 голос
/ 27 апреля 2010

Оберните 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) 
...