首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当写入声纳插件规则时,如何在另一个java源文件中定义Tree.Kind.VARIABLE的Type?

当写入声纳插件规则时,如何在另一个java源文件中定义Tree.Kind.VARIABLE的Type?
EN

Stack Overflow用户
提问于 2015-10-20 08:37:08
回答 1查看 667关注 0票数 0

我正在编写声纳插件规则,如何在另一个java源文件中定义Tree.Kind.VARIABLE的Type?

代码语言:javascript
复制
//Cursor.java:
public interface Cursor extends Closeable {
    // TODO.
};

//Engine.java:
public class Engine extends HandlerThread {
    private Cursor mCursor;
    public List<Suggestion> getSuggestions(){
        Cursor photoCursor = contentResolver.query();
        // TODO.
    }
}

当声纳插件规则分析Engine.java时,我是如何得到mCursor的类型的?那照片的类型呢?

我的守则是:

代码语言:javascript
复制
public class VarCheck extends IssuableSubscriptionVisitor
{

    @Override
    public List<Tree.Kind> nodesToVisit()
    {
        return ImmutableList.of(Tree.Kind.VARIABLE);
    }

    @Override
    public void visitNode(Tree tree)
    {
        if (tree.is(Tree.Kind.VARIABLE))
        {
            VariableTree vart = (VariableTree)tree;
            System.out.println("visitNode 02: " + vart.symbol().name() +" "+ vart.symbol().type().name());

            if (vart.symbol().isVariableSymbol())
            {
                VariableSymbol varSymbol = (VariableSymbol)vart.symbol();
                System.out.println("visitNode 03: " + varSymbol.name() 
                                +" "+ varSymbol.type().name()
                                +" "+ varSymbol.type().isSubtypeOf("java.io.Closeable"));
                // Why varSymbol.type().name() is unknownSymbol?
            }

//          vart.accept(visitor);

        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-20 09:06:46

订阅Tree.Kind.VARIABLE,将节点转换为VariableTree,访问该VariableTree的访问符号().type()。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33231820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档