使用 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)。
如何使用 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)。