豊富に用意された(または自分で構築した)クラスライブラリの、さまざまなクラスやメソッドを利用しながらコーディングを行える点は、Javaの大きな長所の1つですが、半面、どのクラス(メソッド)がどこから呼び出されているか、現在のメソッドがどのクラスに依存しているかを知ることはなかなか難しいことです。
本稿でご紹介するプラグイン「Call Hierarchy」は、このようなメソッド間の依存関係をツリー構造でグラフィカルに表示することを可能にします。
操作手順
(1)「Call Hierarchy」プラグインを入手する
「Call Hierarchy」プラグインは、以下のサイトから入手することが可能です。その時々の最新安定版をダウンロードしてください。
http://eclipse-tools.sourceforge.net/call-hierarchy/
(2)ダウンロードファイルをインストールする
ダウンロードしたdk.kamstruplinnet.callers_X.X.X.zip(X.X.Xはバージョン番号)を解凍し、出来た「dk.kamstruplinnet.callers_X.X.X」フォルダをそのままのイメージで、Eclipseホーム(本稿では「C:\eclipse」とします)配下の「plugins」フォルダに移動します。
Eclipseがすでに起動している場合には、一度終了したうえで、再度起動してください(コンピュータそのものの再起動は必要ありません)。
(3)「Call Hierarchy」プラグインを設定する
「Call Hierarchy」プラグインは、使用に先立って特別な設定は必要ありません。デフォルトの定義で事足りないという場合のみ、メニューバーの[ウィンドウ]→[設定]から設定のカスタマイズを行ってください。
「Call Hierarchy」プラグインの設定は、「設定」ダイアログの左ツリーから[Java]→[Call Hierarchy]を選択することで確認することができます。以下は、主な設定項目です。
カテゴリ | 設定項目 | 概要 | |
---|---|---|---|
Call Hierarchy | Max call depth | 検索する最大階層 | |
Detail orientation | 詳細画面の配置(縦分割か横分割) | ||
Java label format | メソッドシグニチャの表示(引数・戻り値を含むか否か) | ||
Filters | Use package filters | 検索時にフィルタをかけるかどうか | |
Defined package filters | フィルタの対象となるパッケージ |
思うような検索結果が表示されない場合、[Filter]の設定は重要です。階層関係がまったく表示されないという場合には、一度、フィルタ機能を無効にして試してみるとよいでしょう。
(4)メソッドの階層関係を検出する
「パッケージ・エクスプローラ」または「アウトライン」におけるツリーリストから階層関係を調べたいメソッドを選択、右クリックしたときに表示されるコンテキストメニューから[Open Call Hierarchy]をクリックします。
「Call Hierarchy」ウィンドウが開き、該当のメソッドを呼び出しているメソッド、または該当のメソッドが呼び出しているメソッドの一覧をツリー図として表示します。以下の2つのビューは、「Call Hierarchy」ウィンドウの[Show calls to method][Show calls from method]によって切り替えることができます。
また、[Show call detail]をクリックすることで、該当のメソッドを呼び出しているコード部を抽出することができます。
Copyright © ITmedia, Inc. All Rights Reserved.