Ruby to Java 変換
JRubyからJava呼び出しの際にどんなオブジェクトが渡るかテスト
public class Convert { public static void print(Object obj){ System.out.println(obj.getClass() +":"+ obj); } }
include Java def conv obj Java::Convert.print obj end conv 1 conv 1.1 conv "a" conv true conv 1 << 128 conv :a conv [4,5,6] conv({:a=>1, "b"=>0.1}) puts conv 1..4 conv /.*/ conv proc{} require 'set'; conv Set.new [] conv 1.class conv Java begin 1.java_class rescue => e conv e end puts conv Dir.new "." conv (f=File.new("conv.rb")); f.close conv [9,8].to_java conv [9,8].to_java :int
- 結果
class java.lang.Long:1 class java.lang.Double:1.1 class java.lang.String:a class java.lang.Boolean:true class java.math.BigInteger:340282366920938463463374607431768211456 class org.jruby.RubySymbol:a class org.jruby.RubyArray:456 class org.jruby.RubyHash:a1b0.1 class org.jruby.RubyRange:1..4 class org.jruby.RubyRegexp:(?-mix:.*) class org.jruby.RubyProc:#<Proc:0x257807a@conv.rb:19> class org.jruby.RubyObject:#<Set:0x176f5261> class org.jruby.RubyClass:Fixnum class org.jruby.RubyModule:Java class org.jruby.RubyNoMethodError:undefined method `java_class' for 1:Fixnum class org.jruby.RubyDir:#<Dir:0x552a66ea> class org.jruby.RubyFile:RubyFile(conv.rb, 1, 4) class [Ljava.lang.Object;:[Ljava.lang.Object;@174323d5 class [I:[I@637050f5