【发布时间】:2009-07-04 21:15:29
【问题描述】:
我有一个在 Java 上看起来像这样的方法:
public void myMethod(Object... parms);
但我无法按照脚本的预期调用此方法。
如果,在 ruby 中,我这样做:
$myObject.myMethod(42);
它给了我org.jruby.exceptions.RaiseException: could not coerce Fixnum to class [Ljava.lang.Object
如果我在 Javascript 中尝试以下操作:
myObject.myMethod(42);
然后它给了我sun.org.mozilla.javascript.internal.EvaluatorException: Can't find method MyClass.test(number). (#2) in at line number 2
当然,如果我将签名更改为采用单个对象,那么它就可以工作。
我认为这是因为沿线有人不知道如何转换,例如 Integer 到 Integer[] 与第一个位置的值。
我相信像 myMethod({42, 2009}) 这样的东西可以在 Ruby 中工作,但这看起来很难看 - 我希望能够只做 myMethod(42, 2009) 以减少混乱,特别是对于其他语言。有没有更好的解决方法?
谢谢。
【问题讨论】:
标签: java scripting variadic-functions