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

Java JCWildcard类代码示例

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

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



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


示例16: AJCWildcard

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


示例17: createTypeArgs

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


示例18: visitWildcard

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的package包/类
@Override
public Pair<ASTRecord, Integer> visitWildcard(WildcardTree node, Insertion ins) {
  JCWildcard wc = (JCWildcard) node;
  return Pair.of(astRecord(node), wc.getStartPosition());
}
 
开发者ID:typetools,项目名称:annotation-tools,代码行数:6,代码来源:TreeFinder.java


示例19: cloneType0

import com.sun.tools.javac.tree.JCTree.JCWildcard; //导入依赖的package包/类
private static JCExpression cloneType0(TreeMaker 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 = ListBuffer.lb();
		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:redundent,项目名称:lombok,代码行数:51,代码来源:JavacHandlerUtil.java



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

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

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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