clojure.lang.Namespace.areDifferentInstancesOfSameClassName()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(1.5k)|赞(0)|评价(0)|浏览(112)

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

Namespace.areDifferentInstancesOfSameClassName介绍

暂无

代码示例

代码示例来源:origin: videlalvaro/clochure

Class referenceClass(Symbol sym, Class val){
  if(sym.ns != null)
    {
    throw new IllegalArgumentException("Can't intern namespace-qualified symbol");
    }
  IPersistentMap map = getMappings();
  Class c = (Class) map.valAt(sym);
  while((c == null) || (areDifferentInstancesOfSameClassName(c, val)))
    {
    IPersistentMap newMap = map.assoc(sym, val);
    mappings.compareAndSet(map, newMap);
    map = getMappings();
    c = (Class) map.valAt(sym);
    }
  if(c == val)
    return c;

  throw new IllegalStateException(sym + " already refers to: " + c + " in namespace: " + name);
}

代码示例来源:origin: org.dunaj/clojure

Class referenceClass(Symbol sym, Class val){
  if(sym.ns != null)
    {
    throw new IllegalArgumentException("Can't intern namespace-qualified symbol");
    }
  IPersistentMap map = getMappings();
  Class c = (Class) map.valAt(sym);
  while((c == null) || (areDifferentInstancesOfSameClassName(c, val)))
    {
    IPersistentMap newMap = map.assoc(sym, val);
    mappings.compareAndSet(map, newMap);
    map = getMappings();
    c = (Class) map.valAt(sym);
    }
  if(c == val)
    return c;

  throw new IllegalStateException(sym + " already refers to: " + c + " in namespace: " + name);
}

相关文章