org.jruby.RubyClass.op_ge()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(2.4k)|赞(0)|评价(0)|浏览(80)

本文整理了Java中org.jruby.RubyClass.op_ge方法的一些代码示例,展示了RubyClass.op_ge的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyClass.op_ge方法的具体详情如下:
包路径:org.jruby.RubyClass
类名称:RubyClass
方法名:op_ge

RubyClass.op_ge介绍

暂无

代码示例

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

private boolean exceptionHandled(ThreadContext context, IRubyObject excType, Object excObj) {
  Ruby runtime = context.runtime;
  if (excObj instanceof IRubyObject) {
    // regular ruby exception
    if (!(excType instanceof RubyModule)) throw runtime.newTypeError("class or module required for rescue clause. Found: " + excType);
    return excType.callMethod(context, "===", (IRubyObject)excObj).isTrue();
  } else if (runtime.getException().op_ge(excType).isTrue() || runtime.getObject() == excType) {
    // convert java obj to a ruby object and try again
    return excType.callMethod(context, "===", JavaUtil.convertJavaToUsableRubyObject(runtime, excObj)).isTrue();
  } else if (excType instanceof RubyClass && excType.getInstanceVariables().hasInstanceVariable("@java_class")) {
    // java exception where the rescue clause has an embedded java class that could catch it
    RubyClass rubyClass = (RubyClass)excType;
    JavaClass javaClass = (JavaClass)rubyClass.getInstanceVariable("@java_class");
    if (javaClass != null) {
      Class cls = javaClass.javaClass();
      if (cls.isInstance(excObj)) return true;
    }
  }
  return false;
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

private boolean exceptionHandled(ThreadContext context, IRubyObject excType, Object excObj) {
  Ruby runtime = context.runtime;
  if (excObj instanceof IRubyObject) {
    // regular ruby exception
    if (!(excType instanceof RubyModule)) throw runtime.newTypeError("class or module required for rescue clause. Found: " + excType);
    return excType.callMethod(context, "===", (IRubyObject)excObj).isTrue();
  } else if (runtime.getException().op_ge(excType).isTrue() || runtime.getObject() == excType) {
    // convert java obj to a ruby object and try again
    return excType.callMethod(context, "===", JavaUtil.convertJavaToUsableRubyObject(runtime, excObj)).isTrue();
  } else if (excType instanceof RubyClass && excType.getInstanceVariables().hasInstanceVariable("@java_class")) {
    // java exception where the rescue clause has an embedded java class that could catch it
    RubyClass rubyClass = (RubyClass)excType;
    JavaClass javaClass = (JavaClass)rubyClass.getInstanceVariable("@java_class");
    if (javaClass != null) {
      Class cls = javaClass.javaClass();
      if (cls.isInstance(excObj)) return true;
    }
  }
  return false;
}

相关文章

微信公众号

最新文章

更多

RubyClass类方法