I am having a weird problem calling a Java method from JRuby .
In my Java class, these methods are defined twice, and JRuby appears, which causes the wrong one.
So I tried to use java_method, but always got:
TypeError: cannot convert instance of class org.jruby.RubyModule to class java.lang.Class
Here is my Java code:
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);
}
}
and my JRuby code:
add_renderer = renderer.java_method :add_renderer, [Java::dragon.render.IElementRenderer]
add_renderer.call TextRenderer.new
I also tried with java_send, but I got the same error:
renderer.java_send (: add_renderer, [Java :: dragon.render.IElementRenderer], TextRenderer.new)
Next I tried:
renderer.add_renderer (TextRenderer.new.to_java (IElementRenderer))
Errors this time, but the wrong method is being called ...
How can I fix this problem?