使用 JDT 搜索引擎按名称在 IProject 中查找 TypeDeclaration

Finding a TypeDeclaration in an IProject with the JDT search engine by its name

如何使用 JDT 搜索引擎在 IProject 中找到 TypeDeclaration? 我想使用 class 的包和名称(例如 "my.package.ClassName")在特定的 IProject.

中找到它的 TypeDeclaration

我知道我可以使用 Java AST 和比较当前包和节点名称的 AST 访问器,但我更愿意使用字符串搜索。

如果您已经拥有class的合格名称并有项目,则无需使用搜索引擎。

第 1 步:获取代表您的项目的 IJavaProject 实例:

IJavaProject jProj = JavaCore.create(proj);

第 2 步:找到代表您的 class 的 IType

IType type = jProj.findType(fullyQualifiedname);

第三步:获取包含的编译单元:

ICompilationUnit cu = type.getCompilationUnit();

第 4 步:将其传递给 ASTParser,它将创建您的 TypeDeclaration(作为 CompilationUnit 的一部分):

astParser.setSource(cu);

(假设您已经有一个 ASTParser,知道如何调用解析并检查生成的 AST)。