著作一覧 |
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年前の原稿を裏庭で陰干しみたいな流れになってる……馬鹿げてタイムリーなことだ。
ジェズイットを見習え |