从 Ruby 代码获取 JRuby-内部 Java 对象
Getting JRuby-internal Java object from Ruby code
我想知道是否可以在 Ruby 代码中获取 JRuby-内部 Java 对象(例如 org.jruby.RubyString
、org.jruby.RubyTime
),以及从 Ruby 调用他们的 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
我知道我可以使用下面的 Java 代码来做到这一点,但在这里,我想纯粹在 Ruby.
中做到这一点
public org.joda.time.DateTime getJodaDateTime(RubyTime rubytime) {
return rubytime.getDateTime();
}
啊,我在试错中找到了答案。
以下作品。
"foobar".to_java(Java::org.jruby.RubyString).getEncoding()
Time.now.to_java(Java::org.jruby.RubyTime).getDateTime()
我想知道是否可以在 Ruby 代码中获取 JRuby-内部 Java 对象(例如 org.jruby.RubyString
、org.jruby.RubyTime
),以及从 Ruby 调用他们的 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
我知道我可以使用下面的 Java 代码来做到这一点,但在这里,我想纯粹在 Ruby.
中做到这一点public org.joda.time.DateTime getJodaDateTime(RubyTime rubytime) {
return rubytime.getDateTime();
}
啊,我在试错中找到了答案。
以下作品。
"foobar".to_java(Java::org.jruby.RubyString).getEncoding()
Time.now.to_java(Java::org.jruby.RubyTime).getDateTime()