2017-10-19 8 views
0

RubyコードでJRuby内部のJavaオブジェクト(例:org.jruby.RubyStringorg.jruby.RubyTime)を取得し、JavaメソッドをRubyから呼び出すことができますか?誰もそれを行う方法を知っていますか?私はここで以下のようにJavaコードを使用しますが、そのように行うことができます知っているRubyコードからJRuby内部のJavaオブジェクトを取得する

str = "foobar" 
rubystring_str = str.toSomethingConversion # <== What I want 

# http://jruby.org/apidocs/org/jruby/RubyString.html#getEncoding() 
rubystring_str.getEncoding() # Java::org.jcodings.Encoding 
# http://jruby.org/apidocs/org/jruby/RubyString.html#getBytes() 
rubystring_str.getBytes() # [Java::byte] 

time = Time.now 
rubytime_time = time.toSomethingConversion # <== What I want 
# http://jruby.org/apidocs/org/jruby/RubyTime.html#getDateTime() 
rubytime_time.getDateTime() # Java::org.joda.time.DateTime 

、私はRubyで純粋にそれを行うにしたいと思います。

public org.joda.time.DateTime getJodaDateTime(RubyTime rubytime) { 
    return rubytime.getDateTime(); 
} 

答えて

0

ああ、私は試行錯誤で答えを見つけました。

次のように動作します。

"foobar".to_java(Java::org.jruby.RubyString).getEncoding() 
Time.now.to_java(Java::org.jruby.RubyTime).getDateTime() 
関連する問題