2010-05-20 59 views
3

我想以编程方式从JDT Java搜索引擎获取匿名类或本地声明类型(即IType的实例)的模型,该类型由完全限定名称所知。到目前为止,我与没有嵌套在其他类型的“通常”类型的搜索时,下面做的很好:如何使用JDT Java搜索引擎查找匿名类或本地类型?

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中没有发现任何结论。

任何意见是高度赞赏。

的问候, 克里斯

回答

0

什么this.fullyQualifiedName包含匿名或内部类? 尝试使用“$”的范围分隔构建一个类的全名时,像这样:

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