メソッド間の依存関係を簡単に調べるにはJavaTips 〜Eclipse活用編

» 2003年10月21日 10時00分 公開
[山田祥寛@IT]

 豊富に用意された(または自分で構築した)クラスライブラリの、さまざまなクラスやメソッドを利用しながらコーディングを行える点は、Javaの大きな長所の1つですが、半面、どのクラス(メソッド)がどこから呼び出されているか、現在のメソッドがどのクラスに依存しているかを知ることはなかなか難しいことです。

 本稿でご紹介するプラグイン「Call Hierarchy」は、このようなメソッド間の依存関係をツリー構造でグラフィカルに表示することを可能にします。

操作手順

(1)「Call Hierarchy」プラグインを入手する

 「Call Hierarchy」プラグインは、以下のサイトから入手することが可能です。その時々の最新安定版をダウンロードしてください。

http://eclipse-tools.sourceforge.net/call-hierarchy/

Call Hierarchy Pluginのページ Call Hierarchy Pluginのページ

(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 フィルタの対象となるパッケージ
「Call Hierarchy」ページの内容 「Call Hierarchy」ページの内容
Filtersページの内容 Filtersページの内容

 思うような検索結果が表示されない場合、[Filter]の設定は重要です。階層関係がまったく表示されないという場合には、一度、フィルタ機能を無効にして試してみるとよいでしょう。

(4)メソッドの階層関係を検出する

 「パッケージ・エクスプローラ」または「アウトライン」におけるツリーリストから階層関係を調べたいメソッドを選択、右クリックしたときに表示されるコンテキストメニューから[Open Call Hierarchy]をクリックします。

 「Call Hierarchy」ウィンドウが開き、該当のメソッドを呼び出しているメソッド、または該当のメソッドが呼び出しているメソッドの一覧をツリー図として表示します。以下の2つのビューは、「Call Hierarchy」ウィンドウの[Show calls to method][Show calls from method]によって切り替えることができます。

Show calls to methodによって表示されるビュー。該当のメソッドを呼び出しているメソッドを表示 Show calls to methodによって表示されるビュー。該当のメソッドを呼び出しているメソッドを表示
Show calls from methodによって表示されているビュー。該当のメソッドが呼び出しているメソッドの一覧を表示 Show calls from methodによって表示されているビュー。該当のメソッドが呼び出しているメソッドの一覧を表示

 また、[Show call detail]をクリックすることで、該当のメソッドを呼び出しているコード部を抽出することができます。

「改行」タブのページ 「改行」タブのページ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。