対象:
JRuby

Javaオブジェクトの利用等

JRubyならばJava API等を煩わしいコンパイルなしに利用できる。そして、もちろん既存のJava資産を活用することができる。

Javaメソッドの呼び出し

Javaオブジェクトを利用するには、そのオブジェクトをフルパスで記述し、続けてnewメソッドを呼び出す。Javaではオブジェクトを生成するnew構文があるが、JRubyでJavaオブジェクトを利用するときはnewメソッドを利用することになる。尚、Javaオブジェクトを利用する場合、先頭でrequire "java"が必須である。

require "java"

java_date = java.util.Date.new
#java_date = Java::JavaUtil::Date.new # こちらでもOK
p java_date.to_string

java.util.Dateが表す時刻を文字列として取り出すには、普通にtoStringメソッドを呼び出せば良い。この他に、to_stringといったRuby風の呼び出しも可能である。好きなほうで呼ぶと良いだろう。

setter、及びgetterの呼び出しと定数の参照

普通のメソッドは上記の通りだが、特にsetterとgetterはset、及びgetを省略できる。例えば、getTimeZoneはtime_zone(timeZoneでもOK)、getDisplayNameはdisplay_name(displayNameでもOK)で呼び出すことができる。同様にisも省略可能である。例えば、isLenientはlenientで値を得ることができる。また、定数はjava.util.Locale::USのように、::の後に定数名を記述することで参照できる。

require "java"

java_import "java.text.SimpleDateFormat"
java_import "java.util.Locale"

df = SimpleDateFormat.new
p df.time_zone.display_name(Locale::US) # メソッド名のgetは不要
p df.lenient # isも省略可

上記の例ではSimpleDateFormatを予めjava_importしているので、SimpleDateFormatのnewメソッド呼び出し時にフルパスを記述する必要がない。

[mobile@localhost ruby]$ jruby simple_date_format_test.rb 
"Japan Standard Time"
true
(2011/01/13)

新着情報
【iOS Objective-C, Swift Tips】画像の向きを指定して保存する(Swift)
【iOS Objective-C, Swift Tips】UIImagePickerControllerの表示を日本語にする(Swift)
【iOS Objective-C, Swift Tips】ウィンドウの階層構造を3D表示する(Swift)

Copyright(C) 2004-2014 モバイル開発系(K) All rights reserved.
[Home]