我正在使用一个包含多个重载函数的 Java API
class Someclass ...
public static A fun(AInterface,java.lang.String[],java.lang.String[],double[][])
public static A fun(AInterface,java.lang.String[],java.lang.String[],java.lang.String[][])
伪代码 b/c 我面前没有代码。现在,我试图从 jruby 调用这个函数。我的调用代码如下所示:
Someclass::fun(@b, ["foo"], ["bar"], [["baz"], ["qux"]])
@b
是A
;的一个实例 A
实现AInterface
接口。
然而我得到
NameError: no method 'fun' for arguments (my.thing.A,org.jruby.RubyArray,org.jruby.RubyArray,org.jruby.RubyObject) on Java::mything::A
available overloads:
(my.thing.AInterface,java.lang.String[],java.lang.String[],double[][])
(my.thing.AInterface,java.lang.String[],java.lang.String[],java.lang.String[][])
...
将调用代码更改为:
Someclass::fun(@b, [["foo"]].to_java(java.lang.String[]), [["bar"]].to_java(java.lang.String[]), [["baz"], ["qux"]].to_java(java.lang.String[][]))
没有帮助。