- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个基于JRuby on Rails的项目,现在我正在将该项目迁移到jruby-9.0.5.0版本。
在代码中,从Java文件调用ruby,如下所示:
String source = new StringBuilder("require 'java'\n" +
"\n" +
"java_package 'jrubysource'\n" +
"class SystemFilePath\n" +
" attr_accessor :topDirCmd, :topDirNames\n" +
" java_signature 'SystemFilePath(String topDirCmd)'\n" +
" def initialize(topDirCmd)\n" +
" @topDirCmd = topDirCmd\n" +
" setTopDirectoryNames()\n" +
" end\n" +
"\n" +
" java_signature 'void setTopDirectoryNames()'\n" +
" def setTopDirectoryNames\n" +
" Open3.popen3(@topDirCmd) { |stdin, stdout, stderr, wait_thread|\n" +
" out = stdout.read\n" +
" err = stderr.read\n" +
" if err.size > 0 || out.size == 0\n" +
" @topDirNames = nil\n" +
" return\n" +
" end\n" +
" out = out.split(/\\n/).select{|a| a.match(/system_1/) && !a.match(/system_1\\/sim/)}.join(\"\\n\") + \"\\n\";\n" +
" topDirNames = out.split(/\\//).select{|a| a.match(/\\n$/) }.map(&:chomp)\n" +
" if topDirNames.size == 0 then\n" +
" @topDirNames = nil\n" +
" return\n" +
" end\n" +
" @topDirNames = topDirNames.sort.reverse\n" +
" }\n" +
" rescue Exception => e\n" +
" @topDirNames = nil\n" +
" end\n" +
"\n" +
"end\n" +
"").toString();
__ruby__.executeScript(source, "system_file_path.rb");
RubyClass metaclass = __ruby__.getClass("SystemFilePath");
metaclass.setRubyStaticAllocator(SystemFilePath.class);
if (metaclass == null) throw new NoClassDefFoundError("Could not load Ruby class: SystemFilePath");
__metaclass__ = metaclass;
}
public void setTopDirectoryNames() {
@SuppressWarnings("unused")
IRubyObject ruby_result = RuntimeHelpers.invoke(__ruby__.getCurrentContext(), this, "setTopDirectoryNames"); //Here i am calling ruby code from java file.
return;
}
现在,根据 JRuby API document “RuntimeHelpers”类已弃用。
该文档没有提供替代 API。请引导我找到替代方案,因为这对我来说是一个障碍。
最佳答案
它是一个内部 JRuby API ...您可以为每个 IRubyObject 使用类似的 API:
而不是
RuntimeHelpers.invoke(__ruby__.getCurrentContext(), this, "setTopDirectoryNames")
尝试:
this.callMethod(__ruby__.getCurrentContext(), "setTopDirectoryNames")
关于java - Jruby "RuntimeHelpers"类已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37652296/
我有一个基于JRuby on Rails的项目,现在我正在将该项目迁移到jruby-9.0.5.0版本。 在代码中,从Java文件调用ruby,如下所示: String source = ne
RuntimeHelpers.GetHashCode(object) 方法允许根据对象的身份生成哈希码。 MSDN states : The RuntimeHelpers.GetHashCode me
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我正在探索使用 RuntimeHelpers.PrepareMethod() 来减少具有大量 UI 库的瘦客户端应用程序的启动时间 我创建了一个 JIT 帮助程序类以在后台线程上运行并遍历类型或程序集
我目前正在开发 Moq 框架的扩展,以模拟非虚拟方法的实现。我目前已经通过获取原始方法的方法句柄并将其与用户定义的 Func 的指针交换来完成此工作。 我仍然遇到的一个问题是,当我在 Moq 内部代码
我们在 GAE 1.7 上使用 antlr 解析并发现 25 倍的开销(与运行独立的 Java 应用程序相比,在本地的 eclipse 中运行 GAE)因为它花费了 96% 的时间在 RuntimeH
我是一名优秀的程序员,十分优秀!