У меня возникла странная проблема с вызовом метода Java из JRuby .
В моем классе Java эти методы определены дважды, и кажется, что JRuby вызывает неправильный.
Поэтому я попытался использовать java_method
, но всегда получал:
TypeError: не удалось преобразовать экземпляр класса org.jruby.RubyModule в класс java.lang.Class
Вот мой код Java:
public class Renderer {
...
public void addRenderer(IElementRenderer r) {
System.out.println("Added element render: " + r.getClass().toString());
basicRenderers.add(r);
rendererMap.put(r.elementClass(), r);
}
public void addRenderer(IBasicRenderer r) {
System.out.println("SHOULD NOT GO THERE !!");
basicRenderers.add(r);
}
}
и мой код JRuby:
add_renderer = renderer.java_method :add_renderer, [Java::dragon.render.IElementRenderer]
add_renderer.call TextRenderer.new
Я также пытался с java_send
, но я получил ту же ошибку:
renderer.java_send (: add_renderer, [Java :: dragon.render.IElementRenderer], TextRenderer.new)
Далее я попробовал:
renderer.add_renderer (TextRenderer.new.to_java (IElementRenderer)) *
На этот раз ошибок нет, но вызывается неправильный метод ...
Как это исправитьпроблема?