1

我想解析一个项目,其中一些类具有内部类。如何使用 eclips JDT 提取内部类名称其他信息?

4

2 回答 2

4

可以遍历CompilationJava类的单元,访问TypeDeclarationAST节点。然后可以使用下面的代码检查它是否不是顶级类,即内部类。

public boolean visit(TypeDeclaration typeDeclarationStatement) {

    if (!typeDeclarationStatement.isPackageMemberTypeDeclaration()) {
            System.out.println(typeDeclarationStatement.getName());
            // Get more details from the type declaration.
    }

    return true;
}

要获取匿名内部类,也可以使用以下代码:

public boolean visit(AnonymousClassDeclaration anonyomousClassDeclaration) {

    System.out.println(anonyomousClassDeclaration.toString());

    return true;
}

使用 JDT 进行类遍历的详细信息可以从下面的链接中找到:

于 2013-04-01T13:21:36.570 回答
1

如果您有 IType 实例(类型),则可以通过以下方式查询内部类

type.getTypes();

这将为您提供此类型声明的直接成员类型的数组。

于 2013-04-04T07:48:06.947 回答