JDTを使用したメソッドから始めて、すべてのメソッド呼び出しにアクセスします。

ジュゼッペカザト

ある文字列のすべての出現箇所を見つけるために、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");
christoph.keimel

これはJDT / ASTで可能です。私も同じようなことをしました。私のお気に入りのアプローチは、Eclipse用のプラグインを作成し、プロジェクト内でファイル(コンパイル単位)を処理することです。

従うべき基本的な手順は次のとおりです。

  1. ASTを使用して、コード(つまり、JDT ICompilationUnit)をASTモデルに解析できます。

  2. 次に、ビジターパターンを使用して、検索を開始するMethodDeclarationを見つけることができます。

  3. それができたら、MethodDeclarationでビジターを再度使用して、メソッド本体内のすべてのMethodInvocationsを見つけることができます。

  4. MethodInvocationをバインドすると、呼び出されたメソッドのMethodDeclarationが示されます。(解析中は必ずバインディングを有効にしてください。)

ASTを使用する場合に使用する本当に優れたツールは、ASTビューです。これは、EclipseJavaエディターで開かれたファイルのASTモデルを示しています。この更新サイトからASTビューをインストールできます:http//www.eclipse.org/jdt/ui/update-site

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

JDTとASTを使用してネストされたメソッド呼び出しから型を取得します

HttpClientのすべてのメソッドは内部的にSendAsyncメソッドを呼び出しますか?

PropTypesを使用して親クラスからメソッドを呼び出す

クラスとメソッドの呼び出しをメソッドに渡してRubyで使用する

RxJsObservableメソッド呼び出しから返されたデータにアクセスします

初期化メソッドからクラスメソッドをどのように呼び出しますか?

ActiveRecordメソッドのアサートは、RSpecを使用したクラスメソッドを介して呼び出されます

クラス名を介してクラスの属性にアクセスすると、Pythonはどのメソッドを呼び出しますか?

Spring AOPを使用して特定のコード行を実行した後にアドバイスメソッドを呼び出す方法はありますか

AlarmManagerによって呼び出されたBroadcastReceiverのアクティビティからメソッドを呼び出します

リスト内のすべてのオブジェクトでメソッドを呼び出しますか?

メソッド定義または呼び出しメソッドでtryexception / catchを使用していますか?

IFステートメントで使用するために別のクラスのメソッドを呼び出そうとしています

Moqを使用して、メソッドの呼び出しが別のメソッドから行われたかどうかを確認します

クラスのすべてのインスタンスからメソッドをどのように呼び出しますか?

Javascript DotNet.invokeMethodAsyncによって呼び出されたBlazorの静的メソッドからC#非静的メソッドを呼び出します

C#でリフレクションを使用してメソッドから呼び出されたメソッドのリストを取得する方法

Eclipseを使用して非推奨のメソッド呼び出しをすべて検索できますか?

すべてのメソッド呼び出しを取得する

1等から2等のメソッドを呼び出して3等のメソッドを呼び出す方法

mainメソッドを使用して別のクラスからクラスを呼び出す

静的メソッドを使用してViewクラスからダイアログを呼び出す

ドット演算子を使用してジェネリックリストにアクセスするJavaの奇妙なメソッド呼び出し

静的メソッドで作成されたインスタンスを使用して、静的メソッドから非静的メソッドを呼び出す

メソッドの「this」として別のクラスを使用して、クラス内に格納されているメソッドを呼び出すためのC ++の正しい構文は何ですか?

後続のメソッド呼び出し中にすべての引数をcheck()しませんでした

静的メソッドはどのようにして呼び出しアクティビティからコンテキストを取得しますか?

spring / pojoを使用してクラスで特定のメソッドを単独で呼び出しますか?

Javascriptを使用してWebViewからアクティビティのメソッドを呼び出す

TOP 一覧

  1. 1

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  2. 2

    Railsで宝石のレイアウトを使用するにはどうすればよいですか?

  3. 3

    Chromeウェブアプリのウェブビューの高さの問題

  4. 4

    Ansibleで複数行のシェルスクリプトを実行する方法

  5. 5

    アンドロイド9 - キーストア例外android.os.ServiceSpecificException

  6. 6

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  7. 7

    CSSのみを使用して三角形のアニメーションを作成する方法

  8. 8

    Google Playストア:アプリページにリーダーボードと実績のアイコン/バッジが表示されない

  9. 9

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  10. 10

    PyCharmリモートインタープリターはプロジェクトタブにサイトパッケージのコンテンツを表示しません

  11. 11

    Windows 7では、一部のプログラムは「ビジュアルテーマを無効にする」レジストリ設定を行いませんか?

  12. 12

    Get-ADGroupMember:このリクエストのサイズ制限を超えました

  13. 13

    Pyusb can't find a device while libusb can

  14. 14

    MySQLでJSON_LENGTHとJSON_EXTRACTを組み合わせる方法は?

  15. 15

    Postmanを使用してファイル付きの(ネストされた)jsonオブジェクトを送信する

  16. 16

    Swiftのブロックのパラメーターに関するドキュメントのマークアップ形式は何ですか?

  17. 17

    Reactでclsxを使用する方法

  18. 18

    追加後、ブートストラップマルチセレクトがテーブルで機能しない

  19. 19

    MongoDB Compass: How to select Distinct Values of a Field

  20. 20

    「埋め込みブラウザのOAuthログイン」を有効にしてコールバックURLを指定した後でも、Facebookのコールバックエラーが発生する

  21. 21

    複数行ヘッダーのJTableヘッダーテキストの折り返し(カスタムTableCellRenderer)

ホットタグ

アーカイブ