3

完全修飾名で知られるJDTJava検索エンジンから、匿名クラスまたはローカルで宣言された型(つまり、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

私があなたの質問を正しく理解していれば、これが役に立ちます:

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 に答える
0

this.fullyQualifiedName匿名または内部クラスには何が含まれていますか? 次のように、クラスの完全修飾名を作成するときに、スコープ区切り文字として「$」を使用してみてください。

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