- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Ruby 中,如果你做了类似的事情
print ["Hello", 1, 2]
你会得到类似的输出
<小时/>["Hello" , 1 , 2]
有一些ArrayList
对象,Java中的list
。它包含 Object
类型的对象。
我正在将此列表传递给我的 Ruby 代码。当您打印此内容时,控制台会输出类似
<Java::JavaUtil::ArrayList:0x5ab077a7>
这当然是正确的。
但是,我希望得到与上面相同的行为。如果 list
包含两个 Object
类型的对象,当 Ruby 识别它时,我想要获取
[Object:0x1234567 , Object:0x21432423]
而不是列表本身的引用。
我怀疑我应该在将 list
传递给 Ruby 之前将其转换为 RubyArray
。但如何呢?
最佳答案
如果您查看 org.jruby.RubyArray
的 API,您会发现一个 newArray
工厂方法:
java.util.ArrayList list = new java.util.ArrayList();
org.jruby.RubyArray array = org.jruby.RubyArray.newArray(runtime, list);
当然,您需要引用 org.jruby.Ruby
runtime
,它可以从 Java 端(取决于您的使用场景)通过几种方法:
org.jruby.Ruby.getGlobalRuntime();
org.jruby.Ruby.getThreadLocalRuntime();
还请注意,有一个运行时实例,有几个“帮助器”工厂方法可以在 Java 中创建 ruby 对象,例如org.jruby.Ruby.getGlobalRuntime().newArray(list)
关于java - 将 ArrayList 作为 RubyArray 传递给 Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24102055/
在 Ruby 中,如果你做了类似的事情 print ["Hello", 1, 2] 你会得到类似的输出 ["Hello" , 1 , 2] 有一些ArrayList对象,Java中的list。它包含
有一个带有重载方法的 Java 类: public void test(float x) { } public void test(RubyArray array) { } 在 ruby 中, obj
我是 Ruby & Jruby 新手。我想在java代码中测试jruby的一些东西 这是我的代码: import java.util.ArrayList; import java.util.HashM
我是一名优秀的程序员,十分优秀!