ある文字列のすべての出現箇所を見つけるために、Javaメソッドを解析し、その中の他のすべてのメソッド呼び出しの内部(およびそれらの内部など)を調べる必要があります。たとえば、「System.out.println( "Blabla");」
そのためにJDT(http://www.programcreek.com/2011/01/best-java-development-tooling-jdt-and-astparser-tutorials)をどのように使用できますか?他の選択肢は何ですか?
私がこのようなコードを持っている場合:
public void A() {
"System.out.println ("Blabla");
B();
}
public void B() {
"System.out.println ("Blabla");
C();
}
public void C() {
"System.out.println ("Blabla");
}
メソッドの名前( "A")を指定し、出力として次のようにします。
"System.out.println ("Blabla");
"System.out.println ("Blabla");
"System.out.println ("Blabla");
これはJDT / ASTで可能です。私も同じようなことをしました。私のお気に入りのアプローチは、Eclipse用のプラグインを作成し、プロジェクト内でファイル(コンパイル単位)を処理することです。
従うべき基本的な手順は次のとおりです。
ASTを使用して、コード(つまり、JDT ICompilationUnit)をASTモデルに解析できます。
次に、ビジターパターンを使用して、検索を開始するMethodDeclarationを見つけることができます。
それができたら、MethodDeclarationでビジターを再度使用して、メソッド本体内のすべてのMethodInvocationsを見つけることができます。
MethodInvocationをバインドすると、呼び出されたメソッドのMethodDeclarationが示されます。(解析中は必ずバインディングを有効にしてください。)
ASTを使用する場合に使用する本当に優れたツールは、ASTビューです。これは、EclipseJavaエディターで開かれたファイルのASTモデルを示しています。この更新サイトからASTビューをインストールできます:http://www.eclipse.org/jdt/ui/update-site
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加