我想解析一个项目,其中一些类有内部类。我可以使用eclips JDT提取内部类名称其他信息吗?
答案 0 :(得分:4)
您可以遍历Java类的Compilation
单元并访问TypeDeclaration
AST节点。然后可以使用下面的代码来检查它是否不是顶级类,即内部类。
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进行类遍历的详细信息可以在以下链接中找到:
答案 1 :(得分:1)
如果您有一个IType实例(类型),那么您可以通过
查询内部类type.getTypes();
将为您提供此类型声明的直接成员类型的数组。