从jruby调用静态java方法,其中一个静态方法的参数是java接口

时间:2012-08-16 15:41:48

标签: java interface jruby

我正在使用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"]])

@bA的一个实例; 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[][]))

无济于事。

0 个答案:

没有答案