org.jruby.RubyModule.warnMethodRemoval()方法的使用及代码示例

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

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

RubyModule.warnMethodRemoval介绍

暂无

代码示例

代码示例来源:origin: org.jruby/jruby-complete

public void removeMethod(ThreadContext context, String id) {
  testFrozen("class/module");
  switch (id) {
    case "object_id"  : warnMethodRemoval(context, id); break;
    case "__send__"   : warnMethodRemoval(context, id); break;
    case "initialize" : warnMethodRemoval(context, id); break;
  }
  RubySymbol name = context.runtime.newSymbol(id);
  // We can safely reference methods here instead of doing getMethods() since if we
  // are adding we are not using a IncludedModule.
  Map<String, DynamicMethod> methodsForWrite = methodLocation.getMethodsForWrite();
  synchronized (methodsForWrite) {
    DynamicMethod method = methodsForWrite.remove(id);
    if (method == null) {
      throw context.runtime.newNameError(str(context.runtime, "method '", name, "' not defined in ", rubyName()), id);
    }
    invalidateCoreClasses();
    invalidateCacheDescendants();
  }
  if (isSingleton()) {
    ((MetaClass) this).getAttached().callMethod(context, "singleton_method_removed", name);
  } else {
    callMethod(context, "method_removed", name);
  }
}

代码示例来源:origin: org.jruby/jruby-core

public void removeMethod(ThreadContext context, String id) {
  testFrozen("class/module");
  switch (id) {
    case "object_id"  : warnMethodRemoval(context, id); break;
    case "__send__"   : warnMethodRemoval(context, id); break;
    case "initialize" : warnMethodRemoval(context, id); break;
  }
  RubySymbol name = context.runtime.newSymbol(id);
  // We can safely reference methods here instead of doing getMethods() since if we
  // are adding we are not using a IncludedModule.
  Map<String, DynamicMethod> methodsForWrite = methodLocation.getMethodsForWrite();
  synchronized (methodsForWrite) {
    DynamicMethod method = methodsForWrite.remove(id);
    if (method == null) {
      throw context.runtime.newNameError(str(context.runtime, "method '", name, "' not defined in ", rubyName()), id);
    }
    invalidateCoreClasses();
    invalidateCacheDescendants();
  }
  if (isSingleton()) {
    ((MetaClass) this).getAttached().callMethod(context, "singleton_method_removed", name);
  } else {
    callMethod(context, "method_removed", name);
  }
}

相关文章

微信公众号

最新文章

更多

RubyModule类方法