| 著作一覧 |
rjb。Ruby-Java-Bridge。
JNIを使って、RubyからJavaを呼び出す。
やってないこと:たくさん。
たとえば、メソッドシグネチャのチェックが大甘。
Rubyのオブジェクトの移出は手付かず。
配列の変換も後回し。
一応、役には立たないけど動くことは動く。
金曜の夜というか、土曜の朝からだから、2日の作業としちゃこんなもんが、僕の限界のようだ。
予定だけどな
Rjb.load # JVMのロード(自動でやればいいんだけど、一応あるのはテストの必要性)
JavaClass = Rjb.new('package.JavaClass') # Classのロード
jcInstance = JavaClass.new() # インスタンス生成
jcInstance.some # メソッドは当面missingからだ。
jcInstance.Prop = 'hoge' # setPropから生成予定
p jcInstance.Prop # getPropから生成予定
jcInstance.invoke('method-name', 'method-signature', ...)
# overloadされてる場合、どこまで自動判定可能かがあるし
jcInstance2 = JavaClass.new_with_sig('II', 5, 10)
# テストの必要性からこっちは実装済み
class RubyObj
end
ro = RubyObj.new
Rjb.add_interface(ro, 'package.Interface') # 予定だけどな
jcInstance3 = JavaClass.new(ro) # 移出できなきゃな
Rjb.unload # JVMのアンロード。こっちはloadと違って必要な気がする
JNIの仕様を読んだのが一昨日からだから、まだ、こっちの世界が向こうでどうなるかわかってない(まだ読んでない)から、最後から2行目は違う方法になるかも。
使えよな。わかったよ。
TestUnit作ると、妙に実装が計画的になるぞ。って、先にテストを書くからってのが1つ、利用方法を先に考えるからってのが2つ目、と、あらためて再確認。
if (x) ---ここから
{
} ---ここまでコピペしたもんで次の行のelseを忘れた
if (y)
{
}
else
{
}
で、時間を無駄にするとは……(処理は排他だがx && yという条件があるため)……伝説は遠い(あれは処理が無駄ってだけか)。13日の分が更新(unoさんが突っ込み)されてたから読み返してみたら、なんか、情報占有->共有の陳腐化戦略(というより多分、P2Pのなにかについて考えてたみたいだが)のすぐ次の項目で、1年前の原稿を裏庭で陰干しみたいな流れになってる……馬鹿げてタイムリーなことだ。
ジェズイットを見習え |