从Ruby代码获取JRuby内部Java对象

时间:2017-10-19 03:28:15

标签: jruby

我想知道我是否可以在Ruby代码中获取JRuby内部Java对象(例如org.jruby.RubyStringorg.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();
}

1 个答案:

答案 0 :(得分:0)

啊,我在尝试和错误中找到了答案。

以下作品。

ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Error: Your Custom Error Message'))