1

Java プロジェクトの K_COMPILATION_UNITによって作成された AST をITypeBinding呼び出したときに得られる でresolveBinding()遊んでいます。ASTNodeASTParser

たとえば、 の ITypeBinding を解決しましたjava.lang.Stringが、合成メソッドがありません (compareTo(Object)この場合)。ITypeBinding のドキュメントには、合成メソッドが存在する場合と存在しない場合があると記載されていますが、isSynthetic メソッドは、ITypeBinding に合成メソッドも含めるよう説得する何らかの方法が必要であることを示唆しています。

IType呼び出して取得した場合ITypeBinding.getJavaElement()、探している合成メソッドが含まれていますが、ITypeBinding から直接取得できれば簡単です。

何か案は?

4

1 に答える 1

3

合成メソッドを明示的にスキップする実装を見て、答えを見つけました。まず、コンパイラ AST からメソッドを回復するときに合成メソッドをスキップし、次に isSynthetic メソッドの実装から常に false を返すことで、これは Eclipse 3.7 の場合です。

于 2012-01-26T18:01:40.610 に答える