【问题标题】:Finding a TypeDeclaration in an IProject with the JDT search engine by its name使用 JDT 搜索引擎通过名称在 IProject 中查找 TypeDeclaration
【发布时间】:2017-02-12 04:03:34
【问题描述】:
如何使用 JDT 搜索引擎在 IProject 中找到 TypeDeclaration?
我想使用类的包和名称(例如"my.package.ClassName")在特定的IProject 中找到它的TypeDeclaration。
我知道我可以使用 Java AST 和比较当前包和节点名称的 AST 访问者,但我更喜欢使用字符串搜索。
【问题讨论】:
标签:
java
eclipse
eclipse-plugin
eclipse-jdt
【解决方案1】:
如果你已经持有类的限定名并有项目,则无需使用搜索引擎。
第 1 步:获取一个代表您的项目的 IJavaProject 实例:
IJavaProject jProj = JavaCore.create(proj);
第 2 步:找到代表您的班级的 IType:
IType type = jProj.findType(fullyQualifiedname);
第 3 步:获取包含的编译单元:
ICompilationUnit cu = type.getCompilationUnit();
第 4 步:将其传递给ASTParser,它将创建您的TypeDeclaration(作为CompilationUnit 的一部分):
astParser.setSource(cu);
(假设您已经有一个ASTParser,知道如何调用解析并检查生成的 AST)。