• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java BoundKind类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.sun.tools.javac.code.BoundKind的典型用法代码示例。如果您正苦于以下问题:Java BoundKind类的具体用法?Java BoundKind怎么用?Java BoundKind使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



BoundKind类属于com.sun.tools.javac.code包,在下文中一共展示了BoundKind类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: Wildcard

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
public WildcardTree Wildcard(Kind kind, Tree type) {
    final BoundKind boundKind;
    switch (kind) {
        case UNBOUNDED_WILDCARD:
            boundKind = BoundKind.UNBOUND;
            break;
        case EXTENDS_WILDCARD:
            boundKind = BoundKind.EXTENDS;
            break;
        case SUPER_WILDCARD:
            boundKind = BoundKind.SUPER;
            break;
        default:
            throw new IllegalArgumentException("Unknown wildcard bound " + kind);
    }
    TypeBoundKind tbk = make.at(NOPOS).TypeBoundKind(boundKind);
    return make.at(NOPOS).Wildcard(tbk, (JCExpression)type);
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:19,代码来源:TreeFactory.java


示例2: makeWildcard

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
protected Type makeWildcard(Type upper, Type lower) {
    BoundKind bk;
    Type bound;
    if (upper.hasTag(BOT)) {
        upper = syms.objectType;
    }
    boolean isUpperObject = types.isSameType(upper, syms.objectType);
    if (!lower.hasTag(BOT) && isUpperObject) {
        bound = lower;
        bk = SUPER;
    } else {
        bound = upper;
        bk = isUpperObject ? UNBOUND : EXTENDS;
    }
    return new WildcardType(bound, bk, syms.boundClass);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:17,代码来源:VarTypePrinter.java


示例3: visitWildcard

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Override public void visitWildcard(JCWildcard tree) {
	printNode(tree);
	Object o;
	
	// In some javacs (older ones), JCWildcard.kind is a BoundKind, which is an enum. In newer ones its a TypeBoundKind which is a JCTree, i.e. has positions.
	try {
		o = tree.getClass().getField("kind").get(tree);
	} catch (Exception e) {
		throw new RuntimeException("There's no field at all named 'kind' in JCWildcard? This is not a javac I understand.", e);
	}
	
	if (o instanceof JCTree) {
		child("kind", (JCTree)o);
	} else if (o instanceof BoundKind) {
		property("kind", String.valueOf(o));
	}
	child("inner", tree.inner);
	indent--;
}
 
开发者ID:evant,项目名称:android-retrolambda-lombok,代码行数:20,代码来源:JcTreePrinter.java


示例4: visitWildcard

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Override
public void visitWildcard(JCWildcard tree) {
    if (tree.kind.kind == BoundKind.UNBOUND)
        result = tree.kind.toString();
    else
        result = tree.kind + " " + print(tree.inner);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:8,代码来源:TestProcessor.java


示例5: genericMethodInvocation

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Test
public void genericMethodInvocation() {
  compile(
      "import java.util.Collections;",
      "import java.util.List;",
      "class GenericTemplateExample {",
      "  public <E> List<E> example(List<E> list) {",
      "    return Collections.unmodifiableList(list);",
      "  }",
      "}");
  UTypeVar tVar = UTypeVar.create("T");
  UTypeVar eVar = UTypeVar.create("E");
  assertEquals(
      ExpressionTemplate.create(
          ImmutableClassToInstanceMap.<Annotation>builder().build(),
          ImmutableList.of(eVar),
          ImmutableMap.of("list", UClassType.create("java.util.List", eVar)),
          UMethodInvocation.create(
              UStaticIdent.create(
                  "java.util.Collections", 
                  "unmodifiableList", 
                  UForAll.create(
                      ImmutableList.of(tVar), 
                      UMethodType.create(
                          UClassType.create("java.util.List", tVar),
                          UClassType.create(
                              "java.util.List", 
                              UWildcardType.create(BoundKind.EXTENDS, tVar))))),
              UFreeIdent.create("list")),
          UClassType.create("java.util.List", eVar)),
      UTemplater.createTemplate(context, getMethodDeclaration("example")));
}
 
开发者ID:sivakumar-kailasam,项目名称:refactor-faster,代码行数:33,代码来源:TemplatingTest.java


示例6: equality

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Test
public void equality() {
  UType objectType = UClassType.create("java.lang.Object", ImmutableList.<UType>of());
  UType setType = UClassType.create("java.util.Set", ImmutableList.<UType>of(objectType));
  
  new EqualsTester()
      .addEqualityGroup(UWildcardType.create(BoundKind.UNBOUND, objectType)) // ?
      .addEqualityGroup(UWildcardType.create(BoundKind.EXTENDS, objectType)) // ? extends Object
      .addEqualityGroup(UWildcardType.create(BoundKind.EXTENDS, setType)) // ? extends Set<Object>
      .addEqualityGroup(UWildcardType.create(BoundKind.SUPER, setType)) // ? super Set<Object>
      .testEquals();
}
 
开发者ID:sivakumar-kailasam,项目名称:refactor-faster,代码行数:13,代码来源:UWildcardTypeTest.java


示例7: visitTypeReference

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Override
public boolean visitTypeReference(TypeReference node) {
	WildcardKind wildcard = node.astWildcard();
	if (wildcard == WildcardKind.UNBOUND) {
		return posSet(node, treeMaker.Wildcard(treeMaker.TypeBoundKind(BoundKind.UNBOUND), null));
	}
	
	JCExpression result = plainTypeReference(node);
	
	result = addWildcards(node, result, wildcard);
	result = addDimensions(node, result, node.astArrayDimensions());
	
	return set(node, result);
}
 
开发者ID:evant,项目名称:android-retrolambda-lombok,代码行数:15,代码来源:JcTreeBuilder.java


示例8: addWildcards

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
private JCExpression addWildcards(Node node, JCExpression type, WildcardKind wildcardKind) {
	TypeBoundKind typeBoundKind;
	switch (wildcardKind) {
	case NONE:
		return type;
	case EXTENDS:
		typeBoundKind = treeMaker.TypeBoundKind(BoundKind.EXTENDS);
		Position jcExtendsPos = getConversionPositionInfo(node, "extends");
		if (jcExtendsPos == null) {
			setPos(posOfStructure(node, "extends", true), posOfStructure(node, "extends", false), typeBoundKind);
		} else {
			setPos(jcExtendsPos.getStart(), jcExtendsPos.getEnd(), typeBoundKind);
		}
		return setPos(type.pos, endPosTable.get(type), treeMaker.Wildcard(typeBoundKind, type));
	case SUPER:
		typeBoundKind = treeMaker.TypeBoundKind(BoundKind.SUPER);
		Position jcSuperPos = getConversionPositionInfo(node, "super");
		if (jcSuperPos == null) {
			setPos(posOfStructure(node, "super", true), posOfStructure(node, "super", false), typeBoundKind);
		} else {
			setPos(jcSuperPos.getStart(), jcSuperPos.getEnd(), typeBoundKind);
		}
		return setPos(type.pos, endPosTable.get(type), treeMaker.Wildcard(typeBoundKind, type));
	default:
		throw new IllegalStateException("Unexpected unbound wildcard: " + wildcardKind);
	}
}
 
开发者ID:evant,项目名称:android-retrolambda-lombok,代码行数:28,代码来源:JcTreeBuilder.java


示例9: visitWildcardType

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Override
public String visitWildcardType(Type.WildcardType t, Void aVoid) {
  StringBuilder sb = new StringBuilder();
  sb.append(t.kind);
  if (t.kind != BoundKind.UNBOUND) {
    sb.append(t.type.accept(this, null));
  }
  return sb.toString();
}
 
开发者ID:google,项目名称:error-prone,代码行数:10,代码来源:Signatures.java


示例10: genericMethodInvocation

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Test
public void genericMethodInvocation() {
  compile(
      "import java.util.Collections;",
      "import java.util.List;",
      "class GenericTemplateExample {",
      "  public <E> List<E> example(List<E> list) {",
      "    return Collections.unmodifiableList(list);",
      "  }",
      "}");
  UTypeVar tVar = UTypeVar.create("T");
  UTypeVar eVar = UTypeVar.create("E");
  assertEquals(
      ExpressionTemplate.create(
          ImmutableClassToInstanceMap.<Annotation>builder().build(),
          ImmutableList.of(eVar),
          ImmutableMap.of("list", UClassType.create("java.util.List", eVar)),
          UMethodInvocation.create(
              UStaticIdent.create(
                  "java.util.Collections",
                  "unmodifiableList",
                  UForAll.create(
                      ImmutableList.of(tVar),
                      UMethodType.create(
                          UClassType.create("java.util.List", tVar),
                          UClassType.create(
                              "java.util.List", UWildcardType.create(BoundKind.EXTENDS, tVar))))),
              UFreeIdent.create("list")),
          UClassType.create("java.util.List", eVar)),
      UTemplater.createTemplate(context, getMethodDeclaration("example")));
}
 
开发者ID:google,项目名称:error-prone,代码行数:32,代码来源:TemplatingTest.java


示例11: equality

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Test
public void equality() {
  UType objectType = UClassType.create("java.lang.Object", ImmutableList.<UType>of());
  UType setType = UClassType.create("java.util.Set", ImmutableList.<UType>of(objectType));

  new EqualsTester()
      .addEqualityGroup(UWildcardType.create(BoundKind.UNBOUND, objectType)) // ?
      .addEqualityGroup(UWildcardType.create(BoundKind.EXTENDS, objectType)) // ? extends Object
      .addEqualityGroup(UWildcardType.create(BoundKind.EXTENDS, setType)) // ? extends Set<Object>
      .addEqualityGroup(UWildcardType.create(BoundKind.SUPER, setType)) // ? super Set<Object>
      .testEquals();
}
 
开发者ID:google,项目名称:error-prone,代码行数:13,代码来源:UWildcardTypeTest.java


示例12: visitWildcard

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
@Override
public void visitWildcard(JCWildcard tree) {
    try {
        print(tree.kind);
        if (tree.kind.kind != BoundKind.UNBOUND)
            printExpr(tree.inner);
    } catch (IOException e) {
        throw new UncheckedIOException(e);
    }
}
 
开发者ID:sebastianoe,项目名称:s4j,代码行数:11,代码来源:Pretty.java


示例13: visitWildcard

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
public void visitWildcard(JCWildcard tree) {
    //- System.err.println("visitWildcard("+tree+");");//DEBUG
    Type type = (tree.kind.kind == BoundKind.UNBOUND)
        ? syms.objectType
        : attribType(tree.inner, env);
    result = check(tree, new WildcardType(chk.checkRefType(tree.pos(), type),
                                          tree.kind.kind,
                                          syms.boundClass),
                   TYP, pkind, pt);
}
 
开发者ID:sebastianoe,项目名称:s4j,代码行数:11,代码来源:Attr.java


示例14: TypeBoundKind

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
protected TypeBoundKind(BoundKind kind) {
    this.kind = kind;
}
 
开发者ID:tranleduy2000,项目名称:javaide,代码行数:4,代码来源:JCTree.java


示例15: Wildcard

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
public WildcardType Wildcard(BoundKind bk, Type bound) {
    return new WildcardType(bound, bk, predef.boundClass);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:4,代码来源:TypeHarness.java


示例16: TypeBoundKind

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
public TypeBoundKind TypeBoundKind(BoundKind kind) {
	return invoke(TypeBoundKind, kind);
}
 
开发者ID:git03394538,项目名称:lombok-ianchiu,代码行数:4,代码来源:JavacTreeMaker.java


示例17: cloneType0

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
private static JCExpression cloneType0(JavacTreeMaker maker, JCTree in) {
	if (in == null) return null;
	
	if (in instanceof JCPrimitiveTypeTree) return (JCExpression) in;
	
	if (in instanceof JCIdent) {
		return maker.Ident(((JCIdent) in).name);
	}
	
	if (in instanceof JCFieldAccess) {
		JCFieldAccess fa = (JCFieldAccess) in;
		return maker.Select(cloneType0(maker, fa.selected), fa.name);
	}
	
	if (in instanceof JCArrayTypeTree) {
		JCArrayTypeTree att = (JCArrayTypeTree) in;
		return maker.TypeArray(cloneType0(maker, att.elemtype));
	}
	
	if (in instanceof JCTypeApply) {
		JCTypeApply ta = (JCTypeApply) in;
		ListBuffer<JCExpression> lb = new ListBuffer<JCExpression>();
		for (JCExpression typeArg : ta.arguments) {
			lb.append(cloneType0(maker, typeArg));
		}
		return maker.TypeApply(cloneType0(maker, ta.clazz), lb.toList());
	}
	
	if (in instanceof JCWildcard) {
		JCWildcard w = (JCWildcard) in;
		JCExpression newInner = cloneType0(maker, w.inner);
		TypeBoundKind newKind;
		switch (w.getKind()) {
		case SUPER_WILDCARD:
			newKind = maker.TypeBoundKind(BoundKind.SUPER);
			break;
		case EXTENDS_WILDCARD:
			newKind = maker.TypeBoundKind(BoundKind.EXTENDS);
			break;
		default:
		case UNBOUNDED_WILDCARD:
			newKind = maker.TypeBoundKind(BoundKind.UNBOUND);
			break;
		}
		return maker.Wildcard(newKind, newInner);
	}
	
	// This is somewhat unsafe, but it's better than outright throwing an exception here. Returning null will just cause an exception down the pipeline.
	return (JCExpression) in;
}
 
开发者ID:git03394538,项目名称:lombok-ianchiu,代码行数:51,代码来源:JavacHandlerUtil.java


示例18: ATypeBoundKind

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
public ATypeBoundKind(BoundKind kind) {
    super(kind);
}
 
开发者ID:pcgomes,项目名称:javaparser2jctree,代码行数:4,代码来源:ATypeBoundKind.java


示例19: createTypeArgs

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
protected List<JCExpression> createTypeArgs(int count, boolean addExtends, JavacNode node, List<JCExpression> typeArgs, JCTree source) {
	JavacTreeMaker maker = node.getTreeMaker();
	Context context = node.getContext();
	
	if (count < 0) throw new IllegalArgumentException("count is negative");
	if (count == 0) return List.nil();
	ListBuffer<JCExpression> arguments = new ListBuffer<JCExpression>();
	
	if (typeArgs != null) for (JCExpression orig : typeArgs) {
		if (!addExtends) {
			if (orig.getKind() == Kind.UNBOUNDED_WILDCARD || orig.getKind() == Kind.SUPER_WILDCARD) {
				arguments.append(genJavaLangTypeRef(node, "Object"));
			} else if (orig.getKind() == Kind.EXTENDS_WILDCARD) {
				JCExpression inner;
				try {
					inner = (JCExpression) ((JCWildcard) orig).inner;
				} catch (Exception e) {
					inner = genJavaLangTypeRef(node, "Object");
				}
				arguments.append(cloneType(maker, inner, source, context));
			} else {
				arguments.append(cloneType(maker, orig, source, context));
			}
		} else {
			if (orig.getKind() == Kind.UNBOUNDED_WILDCARD || orig.getKind() == Kind.SUPER_WILDCARD) {
				arguments.append(maker.Wildcard(maker.TypeBoundKind(BoundKind.UNBOUND), null));
			} else if (orig.getKind() == Kind.EXTENDS_WILDCARD) {
				arguments.append(cloneType(maker, orig, source, context));
			} else {
				arguments.append(maker.Wildcard(maker.TypeBoundKind(BoundKind.EXTENDS), cloneType(maker, orig, source, context)));
			}
		}
		if (--count == 0) break;
	}
	
	while (count-- > 0) {
		if (addExtends) {
			arguments.append(maker.Wildcard(maker.TypeBoundKind(BoundKind.UNBOUND), null));
		} else {
			arguments.append(genJavaLangTypeRef(node, "Object"));
		}
	}
	
	return arguments.toList();
}
 
开发者ID:mobmead,项目名称:EasyMPermission,代码行数:46,代码来源:JavacSingularsRecipes.java


示例20: create

import com.sun.tools.javac.code.BoundKind; //导入依赖的package包/类
public static UWildcardType create(BoundKind boundKind, UType bound) {
  return new AutoValue_UWildcardType(boundKind, bound);
}
 
开发者ID:sivakumar-kailasam,项目名称:refactor-faster,代码行数:4,代码来源:UWildcardType.java



注:本文中的com.sun.tools.javac.code.BoundKind类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java IPage类代码示例发布时间:2022-05-21
下一篇:
Java LatLngBounds类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap