2

我正在使用 AST 解析器编译项目源。我可以通过什么方式提取类层次结构信息,即它是实现任何接口还是从另一个类扩展?

4

2 回答 2

1

您可以访问该TypeDeclaration节点并从中获取类型绑定。

ITypeBinding typeBind = typDec.resolveBinding();

然后您可以获得超类和实现的接口,如下所示:

public boolean visit(TypeDeclaration typeDeclaration) {

        ITypeBinding typeBind = typeDeclaration.resolveBinding();
        ITypeBinding superTypeBind = typeBind.getSuperclass();
        ITypeBinding[] interfaceBinds = typeBind.getInterfaces();      

        return true;
}
于 2013-04-04T05:53:35.107 回答
0

如果您有 IType 实例(类型),则可以在 ITypeHierarchy 中获取类层次结构,如下所示

ITypeHierarchy typeHierarchie = type.newTypeHierarchy(new NullProgressMonitor());

ITypeHierarchy 具有查询已实现接口的方法

typeHierarchie.getSuperInterfaces(type);

以及扩展了哪些课程

typeHierarchie.getSuperclass(type); 
typeHierarchie.getAllSuperclasses(type);
于 2013-04-04T07:37:53.153 回答