如何使用JDT Java搜索引擎查找匿名类或本地类型?

如何使用JDT Java搜索引擎查找匿名类或本地类型?,java,eclipse,search-engine,eclipse-jdt,Java,Eclipse,Search Engine,Eclipse Jdt,我希望通过编程方式从JDT Java搜索引擎中获取匿名类或本地声明类型(即IType的实例)的模型,即完全限定名。到目前为止,在搜索未嵌套在其他类型中的“常用”类型时,我在以下方面做得很好: SearchPattern pattern = SearchPattern.createPattern(this.fullyQualifiedName, IJavaSearchConstants.TYPE, IJavaSearchConstants.DECLARATIONS, SearchPattern.R

我希望通过编程方式从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);
为什么匿名类和本地声明的类型会中断,我如何修复它?我怀疑,我必须改变搜索模式,但在JavaDoc中没有发现任何结论

任何建议都将不胜感激

问候,,
Chris

这个.fullyQualifiedName为匿名类或内部类包含什么? 在生成类的完全限定名时,请尝试使用“$”作为范围分隔符,如下所示:

a.b.c.Outer$Inner
a.b.c.Outer$1 // anonymous

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

SearchEngine.searchAllTypeNames

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

更多信息请点击此处: