1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
require 'java'
class OverloadedClass
java_signature "void run(String)"
def run1(a); end
java_signature "void run(int)"
def run2(a); end
end
=begin
~/projects/jruby/samples/jrubyc_java ➔ jrubyc --java overloads.rb
Compiling overloads.rb to class overloads
Generating Java class OverloadedClass to OverloadedClass.java
javac -cp /Users/headius/projects/jruby/lib/jruby.jar:. OverloadedClass.java
Note: OverloadedClass.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
~/projects/jruby/samples/jrubyc_java ➔ cat OverloadedClass.java
import org.jruby.Ruby;
import org.jruby.RubyObject;
import org.jruby.runtime.Helpers;
import org.jruby.runtime.builtin.IRubyObject;
import org.jruby.javasupport.JavaUtil;
import org.jruby.RubyClass;
public class OverloadedClass extends RubyObject {
private static final Ruby __ruby__ = Ruby.getGlobalRuntime();
private static final RubyClass __metaclass__;
static {
__ruby__.getLoadService().require("overloads.rb");
RubyClass metaclass = __ruby__.getClass("OverloadedClass");
metaclass.setClassAllocator(OverloadedClass.class);
if (metaclass == null) throw new NoClassDefFoundError("Could not load Ruby class: OverloadedClass");
__metaclass__ = metaclass;
}
public OverloadedClass() {
super(__ruby__, __metaclass__);
}
public void run(String a) {
IRubyObject ruby_a = JavaUtil.convertJavaToRuby(__ruby__, a);
IRubyObject ruby_result = Helpers.invoke(__ruby__.getCurrentContext(), this, "run1" ,ruby_a);
}
public void run(int a) {
IRubyObject ruby_a = JavaUtil.convertJavaToRuby(__ruby__, a);
IRubyObject ruby_result = Helpers.invoke(__ruby__.getCurrentContext(), this, "run2" ,ruby_a);
}
}
=end
|