JRuby-クラス

■簡単な例
普通のJavaのクラスをJRubyから利用する
簡単な例:


require 'java' <-(1)
include_class 'java.lang.System' <-(2)
System.out.println 'Hello, Java!' <-(3)
(1)→ javaを利用するためのライブラリをロードする
    RubyからJavaの機能にアクセスするには必須だ。

(2)→ java.lang.Systemクラスを読み込んでいる。
    このクラスは、JRubyプログラム側ではSystemという名前のクラスになる。

(3)→ Systemクラスのout(標準出力)を使って、「Hello, Java!」という文字列を表示

JRubyからJavaクラスを指定
FQCN(Fully Qualified Class Name)を使う


jp = Java::jp
s = jp.co.esm.Something.new
・include_classでクラスを取り込む

include_class 'java.util.HashMap'
・include_packageでパッケージ中のすべてのクラスを取り込む

include_class('java.lang.String') {|package,name| "J#{name}"}

■型
javaの数値と文字列型はJRubyが自動で変換してくれる
java.util.Map → Rubyのハッシュ
java.util.List → Rubyの配列
Rubyの配列はJavaのListになってしまうので、Javaの配列を渡すためには、Javaの配列を明示的に生成する必要がある。
以下のように書くと要素が4つのJavaの配列のインスタンスができる。


a = java.lang.String[4].new