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


Java Symbol.hasOuterInstance方法代码示例

本文整理汇总了Java中com.sun.tools.javac.code.Symbol.hasOuterInstance方法的典型用法代码示例。如果您正苦于以下问题:Java Symbol.hasOuterInstance方法的具体用法?Java Symbol.hasOuterInstance怎么用?Java Symbol.hasOuterInstance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.sun.tools.javac.code.Symbol的用法示例。


在下文中一共展示了Symbol.hasOuterInstance方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getMember

import com.sun.tools.javac.code.Symbol; //导入方法依赖的package包/类
public <T extends Symbol> List<T> getMember(Class<T> type, ElementKind kind, Symbol classSymbol) {
    List<T> results = Lists.newArrayList();
    if (classSymbol.type == null || classSymbol.type.isPrimitiveOrVoid()) {
        return results;
    }
    for (Type t : types.closure(classSymbol.type)) {
        Scope scope = t.tsym.members();
        if (scope == null) continue;
        scope.getElements(symbol -> symbol.getKind() == kind)
                .forEach(s->results.add(type.cast(s)));
    }
    if (classSymbol.owner != null && classSymbol != classSymbol.owner
            && classSymbol.owner instanceof Symbol.ClassSymbol) {
        results.addAll(getMember(type, kind, classSymbol.owner));
    }
    if (classSymbol.type.getEnclosingType() != null && classSymbol.hasOuterInstance()) {
        results.addAll(getMember(type, kind, classSymbol.type.getEnclosingType().asElement()));
    }
    return results;
}
 
开发者ID:frankelau,项目名称:pndao,代码行数:21,代码来源:DaoGenHelper.java

示例2: visitApply

import com.sun.tools.javac.code.Symbol; //导入方法依赖的package包/类
@Override
public void visitApply(JCMethodInvocation tree) {
    boolean prevCheckThis = checkThis;
    try {
        Symbol meth = TreeInfo.symbol(tree.meth);
        Name methName = TreeInfo.name(tree.meth);
        if (meth != null && meth.name == names.init) {
            Symbol c = meth.owner;
            if (c.hasOuterInstance()) {
                checkThis = false;
                if (tree.meth.getTag() != JCTree.Tag.SELECT && (c.isLocal() || methName == names._this)) {
                    checkThis(tree.meth.pos(), c.type.getEnclosingType().tsym);
                }
            }
        }
        super.visitApply(tree);
    } finally {
        checkThis = prevCheckThis;
    }
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:21,代码来源:PostFlowAnalysis.java

示例3: visitNewClass

import com.sun.tools.javac.code.Symbol; //导入方法依赖的package包/类
@Override
public void visitNewClass(JCNewClass tree) {
    super.visitNewClass(tree);
    Symbol c = tree.constructor != null ? tree.constructor.owner : null;
    if (c != null && c != syms.noSymbol && c.hasOuterInstance()) {
        if (tree.encl == null && c.isLocal()) {
            checkThis(tree.pos(), c.type.getEnclosingType().tsym);
        }
    }
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:11,代码来源:PostFlowAnalysis.java


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