3

我想以编程方式从 JDT Java 搜索引擎中获取匿名类的模型或本地声明的类型(即 IType 的实例),以完全限定名称闻名。到目前为止,在搜索未嵌套在其他类型中的“常用”类型时,我在以下方面做得很好:

SearchPattern pattern = SearchPattern.createPattern(this.fullyQualifiedName, IJavaSearchConstants.TYPE, IJavaSearchConstants.DECLARATIONS, SearchPattern.R_EXACT_MATCH);
IJavaSearchScope scope = SearchEngine.createWorkspaceScope();
SearchRequestor requestor = new TypeSearchRequestor(this);
SearchEngine searchEngine = new SearchEngine();
searchEngine.search(pattern, new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()}, scope, requestor, null);

为什么它会中断匿名类和本地声明的类型,我该如何解决?我怀疑,我必须更改 SearchPattern,但在 JavaDoc 中没有发现任何结论。

任何建议都受到高度赞赏。

问候,克里斯

4

2 回答 2

0

this.fullyQualifiedName匿名或内部类包含什么?在构建类的完全限定名称时,尝试使用 '$' 作为范围分隔符,如下所示:

a.b.c.Outer$Inner
a.b.c.Outer$1 // anonymous
于 2010-07-25T06:39:14.970 回答
0

如果我正确理解了您的问题,那么这可能会有所帮助:

SearchEngine.searchAllTypeNames

这将搜索给定范围内的所有顶级类型和成员类型。

更多信息来自这里:http ://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_int_core.htm

于 2012-06-21T07:50:48.757 回答