0

次の形式のオーバーロードされた関数をいくつか含む 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のインスタンスですAAインターフェイスを実装し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[][]))

助けにならない。

4

0 に答える 0