Java to Ruby 変換表

JRubyで呼び出したJavaメソッドからの戻り値が、Rubyのどの型に変換されるか調べた

Java戻り値 Ruby
boolean true, false
char Fixnum
byte Fixnum
short Fixnum
int Fixnum
long Fixnum
float Float
double Float
String String
BigInteger Bignum

Wrapperクラスのときも型変換はされた。
Collectionや配列は変換されなかった。
Javaのメソッドで戻り値型をNumberにしたところ、実際の中身の型で変換された。

Rubyのオブジェクトを返したい場合

JavaからRubyのArrayを返したい場合はorg.jruby.RubyArray#newArray(org.jruby.Ruby)を使用できる

	public List getList(org.jruby.Ruby runtime){
		List list = org.jruby.RubyArray.newArray(runtime);
・・・

ただしArrayを作成するためにはRubyランタイムを渡す必要がある。
(このメソッドをJRubyから使用する場合はobj.getList(JRuby.runtime)のようにする)