当前位置: 首页>>代码示例>>Java>>正文


Java JCWildcard类代码示例

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


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

示例1: diffWildcard

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的package包/类
protected int diffWildcard(JCWildcard oldT, JCWildcard newT, int[] bounds) {
    int localPointer = bounds[0];
    if (oldT.kind != newT.kind) {
        copyTo(localPointer, oldT.pos);
        printer.print(newT.kind.toString());
        localPointer = oldT.pos + oldT.kind.toString().length();
    }
    JCTree oldBound = oldT.kind.kind != BoundKind.UNBOUND ? oldT.inner : null;
    JCTree newBound = newT.kind.kind != BoundKind.UNBOUND ? newT.inner : null;
    if (oldBound == newBound && oldBound == null) return localPointer;
    int[] innerBounds = getBounds(oldBound);
    copyTo(localPointer, innerBounds[0]);
    localPointer = diffTree(oldBound, newBound, innerBounds);
    copyTo(localPointer, bounds[1]);

    return bounds[1];
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:18,代码来源:CasualDiff.java

示例2: visitWildcard

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的package包/类
@Override public void visitWildcard(JCWildcard tree) {
	switch (tree.getKind()) {
	default:
	case UNBOUNDED_WILDCARD:
		print("?");
		return;
	case EXTENDS_WILDCARD:
		print("? extends ");
		print(tree.inner);
		return;
	case SUPER_WILDCARD:
		print("? super ");
		print(tree.inner);
		return;
	}
}
 
开发者ID:git03394538,项目名称:lombok-ianchiu,代码行数:17,代码来源:PrettyPrinter.java

示例3: cloneParamType

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的package包/类
protected JCExpression cloneParamType(int index, JavacTreeMaker maker, List<JCExpression> typeArgs, JavacNode builderType, JCTree source) {
	if (typeArgs == null || typeArgs.size() <= index) {
		return genJavaLangTypeRef(builderType, "Object");
	} else {
		JCExpression originalType = typeArgs.get(index);
		if (originalType.getKind() == Kind.UNBOUNDED_WILDCARD || originalType.getKind() == Kind.SUPER_WILDCARD) {
			return genJavaLangTypeRef(builderType, "Object");
		} else if (originalType.getKind() == Kind.EXTENDS_WILDCARD) {
			try {
				return cloneType(maker, (JCExpression) ((JCWildcard) originalType).inner, source, builderType.getContext());
			} catch (Exception e) {
				return genJavaLangTypeRef(builderType, "Object");
			}
		} else {
			return cloneType(maker, originalType, source, builderType.getContext());
		}
	}
}
 
开发者ID:git03394538,项目名称:lombok-ianchiu,代码行数:19,代码来源:JavacSingularsRecipes.java

示例4: visitWildcard

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的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

示例5: visitWildcard

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的package包/类
public void visitWildcard(JCWildcard that) {
    try {
        print("JCWildcard:");
    } catch (Exception e) {
    }
    super.visitWildcard(that);
}
 
开发者ID:pcgomes,项目名称:javaparser2jctree,代码行数:8,代码来源:PrintAstVisitor.java

示例6: printBaseElementType

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的package包/类
private void printBaseElementType(JCArrayTypeTree tree) throws IOException {
	JCTree elem = tree.elemtype;
	while (elem instanceof JCWildcard)
		elem = ((JCWildcard) elem).inner;
	if (elem instanceof JCArrayTypeTree)
		printBaseElementType((JCArrayTypeTree) elem);
	else
		printExpr(elem);
}
 
开发者ID:mobmead,项目名称:EasyMPermission,代码行数:10,代码来源:PrettyCommentsPrinter.java

示例7: getTypeBoundKindPosition

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的package包/类
private Position getTypeBoundKindPosition(JCWildcard node) {
	try {
		Object o = JCWILDCARD_KIND.get(node);
		if (o instanceof TypeBoundKind) {
			return getPosition((TypeBoundKind) o);
		}
	} catch (Exception e) {}
	return Position.UNPLACED;
}
 
开发者ID:evant,项目名称:android-retrolambda-lombok,代码行数:10,代码来源:JcTreeConverter.java

示例8: inline

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的package包/类
@Override
public JCWildcard inline(Inliner inliner) throws CouldNotResolveImportException {
  return inliner
      .maker()
      .Wildcard(
          inliner.maker().TypeBoundKind(BOUND_KINDS.get(getKind())),
          (getBound() == null) ? null : getBound().inline(inliner));
}
 
开发者ID:google,项目名称:error-prone,代码行数:9,代码来源:UWildcard.java

示例9: visitWildcard

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的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

示例10: visitWildcard

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的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

示例11: printBaseElementType

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的package包/类
private void printBaseElementType(JCArrayTypeTree tree) throws IOException {
    JCTree elem = tree.elemtype;
    while (elem instanceof JCWildcard)
        elem = ((JCWildcard) elem).inner;
    if (elem instanceof JCArrayTypeTree)
        printBaseElementType((JCArrayTypeTree) elem);
    else
        printExpr(elem);
}
 
开发者ID:redundent,项目名称:lombok,代码行数:10,代码来源:PrettyCommentsPrinter.java

示例12: matchWildcard

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的package包/类
private boolean matchWildcard(JCWildcard t1, JCWildcard t2) {
    return t1.kind == t2.kind && treesMatch(t1.inner, t2.inner);
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:4,代码来源:CasualDiff.java

示例13: Wildcard

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

示例14: visitTypeArray

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的package包/类
@Override public void visitTypeArray(JCArrayTypeTree tree) {
	JCTree elem = tree.elemtype;
	while (elem instanceof JCWildcard) elem = ((JCWildcard) elem).inner;
	print(elem);
	print("[]");
}
 
开发者ID:git03394538,项目名称:lombok-ianchiu,代码行数:7,代码来源:PrettyPrinter.java

示例15: cloneType0

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的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


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