从jruby调用静态java方法,其中一个静态方法';s参数是一个java接口
我正在使用一个JavaAPI,它包含多个这种形式的重载函数从jruby调用静态java方法,其中一个静态方法';s参数是一个java接口,java,interface,jruby,Java,Interface,Jruby,我正在使用一个JavaAPI,它包含多个这种形式的重载函数 class Someclass… publicstaticafun(AInterface,java.lang.String[],java.lang.String[],double[]) publicstaticafun(AInterface,java.lang.String[],java.lang.String[],java.lang.String[]) 伪代码b/c我面前没有代码。现在,我试图从jruby调用这个函数。我的呼叫代码如下
class Someclass…
publicstaticafun(AInterface,java.lang.String[],java.lang.String[],double[])
publicstaticafun(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:Java::mything::A上的参数(my.thing.A、org.jruby.RubyArray、org.jruby.RubyArray、org.jruby.RubyObject)没有“有趣”的方法
可用的重载:
(my.thing.AInterface,java.lang.String[],java.lang.String[],double[]
(my.thing.AInterface,java.lang.String[],java.lang.String[],java.lang.String[],java.lang.String[]))
...
将调用代码更改为:
Someclass::fun(@b,[[“foo”].[u-java(java.lang.String[]),[[“bar”].[u-java(java.lang.String[]),[[“baz”],[“qux”].[u-java(java.lang.String[])。
没有帮助。按照创建实际的Java数组。@DaveNewton请查看我的回答。我认为问题与接口和重载有关,而与数组的类型无关。错误消息是否相同?你是如何创建你的A?