レベル: 初級 Prashant Deva, Founder, Placid Systems
2009年 01月 13日 連載「Eclipse をマスターする」では、まったくの Eclipse 初心者を対象に Eclipse IDE のノウハウを教えます。今は初心者でも、連載が終わる頃には上級ユーザーと肩を並べるほどになっているはずです。今回の記事では Eclipse の Java™ エディターを紹介し、このエディターに備わった高度な機能をいくつか取り上げて説明します。
連載「Eclipse をマスターする」では今回、Eclipse の Java エディターについて詳しく説明します。Java エディターは開発者がその開発時間の大半を費やす場所なので、このエディターに備わった高度な機能を理解することで生産性を大幅に向上できるはずです。
Organize Imports コマンド
Organize Imports コマンドは、不足しているインポートを追加して、Java ファイル内での既存のインポート宣言を編成します。このコマンドを実行するには、現行のエディターで Ctrl+Shift+O を押します。Organize Imports コマンドをプロジェクト全体に適用する場合には、「プロジェクト・エクスプローラー」ビューでプロジェクトを右クリックし、ソース (Source) > インポートの編成 (Organize Imports) の順に選択してください。
Java ファイルのどこかでクラスを使用したにも関わらず、そのクラスをインポートし忘れてしまったとします。その場合、Organize Imports を実行することで、そのクラスを自動的にインポートすることができます。このコマンドがクラスのロケーションを確定できない場合には、選択肢の一覧のウィンドウが開くので、そこから選択することができます。例えばコードで List クラスを使用している場合に Organize Imports コマンドを実行すると、ウィンドウがポップアップ表示されて、java.util.List と javax.swing.List のどちらであるかをコマンドが判断できないため、ユーザーが選択するように求めてきます。
Organize Imports はまた、一般的に使われている .* スタイルのインポート宣言を個々のインポートに分割します。例えば、ファイルで import java.util.* のようなインポートを使用していて、そのパッケージからは List クラスしか使用していないとします。この場合、Organize Imports コマンドを実行すると、元の import 文は import java.util.List に置き換えられます。
ストリングの部分的抜粋
2 つのストリングを 1 つの変数で連結させなければならないことはよくあります。この場合の 2 つのストリングは大抵、同じ 1 つの文の構成部分であるため、ストリングの前か後のどちらかに、必要なスペースを入れ忘れてしまいがちです。例えば、出力結果が You have 5 seconds left ではなく、You have5seconds left になってしまうといった具合です。Eclipse では、このような誤りを防ぐことができます。
- コード内にいつものやり方でストリングを入力してください。
static String getMsg(int time)
{
return "You have 5 seconds left";
}
|
- 変数に置き換えるストリングの部分を選択します。この例では、数値の 5 を変数に置き換えます。
- Ctrl+1 を押して「ストリングの選択済パーツの選出 (Pick out selected part of String)」を選択します。
図 1. 「ストリングの選択済パーツの選出 (Pick out selected part of String)」の選択
この操作の結果は、図 2 のとおりです。
図 2. ストリングの選択部分が選出された様子
- 真ん中のストリングを変数に置き換えます。
図 3. 変数によるストリングの置換
これで、スペースについての誤りを確実に防ぐことができます。
ローカル変数の自動作成
メソッドを呼び出して、その値を新しいローカル変数に割り当てなければならないことは珍しくありません。Eclipse ではこれを簡単に行えるため、以前のような方法でローカル変数を割り当てることは一切なくなります。
- メソッドの呼び出しを入力します。
public void foo()
{
getMsg(3);
}
|
- 挿入マーカーを動かさずに、Ctrl+1 を押して「ステートメントを新規ローカル変数に割り当てます (Assign statement to a new local variable)」を選択します (図 4 を参照)。「ステートメントを新規フィールドに割り当てます (Assign statement to a new field)」を選択して、ローカル変数ではなくフィールドを使用することもできます。
図 4. 「ステートメントを新規フィールドに割り当てます (Assign statement to a new field)」の選択
同じ型の新しいローカル変数がメソッドの戻り値として自動的に作成されます。この変数には適切な名前が付いていますが、必要に応じて名前を変更しても構いません (図 5 を参照)。名前を受け入れるには、Enter キーを押します。
図 5. 変数の名前変更
「簡易アウトライン」ビュー
「アウトライン (Outline)」ビューは Java ファイル内のメソッドに簡単にジャンプできる便利なビューです。その一方、このビューは画面上の貴重な表示領域を大幅に占領します。
「簡易アウトライン (Quick Outline)」ビューは、画面の領域を大幅に占めることなく、しかも「アウトライン (Outline)」ビューと同じ機能を提供します。エディター内から「簡易アウトライン (Quick Outline)」ビューは、画面の領域を占めることなく、しかも「アウトライン (Outline)」ビューを起動するには Ctrl+O を押します。するとファイルの概要を示すポップアップ・ウィンドウが表示されます。
図 6. Ctrl+O を押すと表示される「簡易アウトライン (Quick Outline)」ビュー
メソッドに移動するには、矢印キーを使用してナビゲートします。さらに素早くメソッドに移動するには、メソッドの名前を入力し始めてください。文字を入力するごとにリストがフィルタリングされて、入力した文字で始まるメソッドのみが表示されます。
図 7. 入力に合わせてフィルタリングされる「簡易アウトライン (Quick Outline)」ビュー
「型を開く」簡易ウィンドウ
「型を開く (Open Type)」ウィンドウは、「アウトライン (Outline)」ビューに対する「簡易アウトライン (Quick Outline)」ビューの役割と同じ役割を「パッケージ・エクスプローラー」に対して果たします。
エディターから Ctrl+Shift+T を押すと、ウィンドウがポップアップ表示されるので、このウィンドウでワークスペース内の任意のクラスの名前を入力します (図 8 を参照)。「OK」をクリックするとすぐに、入力した名前のクラスがエディターに開きます。目的のクラスを開くために「パッケージ・エクスプローラー」のツリーをナビゲートする必要はありません。
図 8. ワークスペース内の任意のクラスに即時にジャンプできる「型を開く (Open Type)」ウィンドウ
クラス名を入力するときにワイルドカードを使用すると、テキスト・ボックスの下に表示されるリストをフィルタリングすることができます。例えば *Exception と入力すると、すべての Exception クラスが表示されます。
パンくずリスト・バー
パンくずリスト・バーは、Eclipse V3.4 で導入されました。このバーはエディター・ウィンドウ上部のタブのすぐ下に配置され、「パッケージ・エクスプローラー (Package Explorer)」ビューと「アウトライン (Outline)」ビュー両方の機能を提供します (図 9 を参照)。このバーが表示されていない場合には、Alt+Shift+B を押すと有効になります。
図 9. パンくずリスト・バー
パンくずリスト・バーは、現行ワークスペースから現在のエディターへの相対パスを示します。黒の矢印のいずれかをクリックすると、その要素の内容が表示されます。つまり、このバーからはワークスペース全体をブラウズできるというわけです。
図 10. ワークスペースをブラウズできるパンくずリスト・バー
簡易 Javadoc
メソッドの内容を調べようとするときに、Eclipse では簡単に、あらゆるメソッドの Javadoc を表示することができます。マウス・カーソルを目的のメソッドに重ねるだけで、Javadoc ウィンドウが表示されます。
図 11. マウス・カーソルを Java メソッドに重ねると表示される関連 Javadoc (indexOf メソッドの場合)
この機能の威力はこれだけではありません。マウス・カーソルをポップアップ・ウィンドウの内側に移すと、ウィンドウがスクロール可能になります (図 12 を参照)ウィンドウの下部にあるボタンを使って、Javadoc を外部ウィンドウに開いたり、表示中の Javadoc に対応するメソッドの宣言にジャンプすることもできます。
図 12. ポップアップ内にマウス・カーソルを移動するとスクロール可能になるウィンドウ
自動フォーマット
Eclipse の自動フォーマット機能を利用して、文書を自動的にフォーマット設定することができます。「パッケージ・エクスプローラー (Package Explorer)」で文書を右クリックして、ソース (Source) > フォーマット (Format) の順に選択してください。「パッケージ・エクスプローラー」で個々のファイルの代わりにプロジェクトを右クリックすれば、プロジェクト全体をフォーマット設定することもできます。
Eclipse でコードのフォーマット設定を構成するには、以下のようにします。
- ウィンドウ (Window) > 設定 (Preferences) の順に選択し、Java > コード・スタイル (Code Style) > フォーマッター (Formatter) までブラウズします。
図 13. Eclipse でのコードのフォーマット設定の編集
- 「新規 (New)」をクリックし、表示されたウィンドウに名前を入力してフォーマット用の新規プロファイルを作成します。
- プロファイルの作成が完了したら、「編集 (Edit)」をクリックしてプロファイルのフォーマット設定の編集に取り掛かります。
- 表示される「プロファイル (Profile)」ウィンドウでは、ソース・コードのフォーマットを構成するための詳細設定を使用することができます。ソース・コードに含まれる要素ごとに必要なインデントの量から、インポート・グループ間の空白行の数まで構成することができます。
図 14. Eclipse で構成できる詳細なフォーマット設定
- 「OK」をクリックして「プロファイル (Profile)」ウィンドウを閉じ、もう一度「OK」をクリックして「設定 (Preferences)」ウィンドウを閉じます。
新しいフォーマット設定は、次にソース・コードをフォーマット設定するときから適用されることに注意してください。
保管アクション
「保管アクション (Save Actions)」は、文書を保管するときに起動されます。「保管アクション (Save Actions)」では、文書を保管するときのコードのフォーマット設定やインポートの自動編成などを指定することができます。「保管アクション (Save Actions)」を構成する方法は以下のとおりです。
- ウィンドウ (Window) > 設定 (Preferences) > Java > エディター (Editor) > 保管アクション (Save Actions) の順に選択して、「設定 (Preferences)」ウィンドウを開きます。
図 15. 「設定 (Preferences)」ウィンドウでの「保管アクション (Save Actions)」の構成
- 「保管時に選択したアクションを実行 (Perform the selected actions on save)」チェック・ボックスにチェック・マークを付けます。
- 保管時に実行させるすべてのアクションを選択します。その他のアクションを表示するには、「構成… (Configure…)」をクリックします。
図 16. 「構成… (Configure…)」をクリックすると表示されるその他のアクション
例えば、「コード・スタイル (Code Style)」タブにある「for ループを拡張に変換 (Convert for loops to enhanced)」チェック・ボックスにチェック・マークを付けると、文書を保管するたびに、すべての for ループが Java 5 スタイルの拡張ループに変換されます。
保管アクションによって大幅な時間の節約が可能になります。例えばコーディングをするときにフォーマットについて考えずに入力しても、文書を保管するときには常に完全なフォーマットに自動設定されるようにすることができます。
コードの折り畳み
コードの折り畳み機能は、文字通りコードを折り畳んで、エディターの表示を簡潔にするためのものです。メソッドを折り畳むには、左側のルーラーにある - アイコンをクリックします。
図 17. - アイコンをクリックすると折り畳まれるコード
コードを折り畳むと、- アイコンが + の表示に変わります。この + アイコンをクリックすると、メソッドが展開表示されます。メソッドが折り畳まれた状態のときに + アイコンにマウス・カーソルを重ねてみてください。すると、ポップアップ・ウィンドウが開いてメソッド内部のテキストが表示されます。
図 18. + アイコンにマウス・カーソルを重ねると表示される、折り畳まれたコードのプレビュー
hashCode() および equals() の生成
Eclipse ではクラスの hashCode() メソッドと equals() メソッドを自動的に生成できるため、自分でこれらのメソッドを作成する必要はありません。メソッドを自動的に生成することで、メソッド作成中のエラーを防ぐことができます。メソッドを生成する方法は以下のとおりです。
- ソース (Source) > hashCode() および equals() の生成 (Generate hashCode() and equals()) の順に選択します。
hashCode() および equals() メソッドをクラスで呼び出すときに含めるフィールドを選択するように求めるウィンドウが開きます。
図 19. hashCode() および equals() メソッドを生成する際に含めるフィールドの選択
- 目的のフィールドを選択して「OK」をクリックします。これで、自動的に
hashCode() メソッドと equals() メソッドが生成されます。
概要ルーラー
エディター・ウィンドウの右側には、概要ルーラーが組み込まれています。この概要ルーラーによって、エディター内で注意を向けなければならないエラーや警告、その他のマーカーがすぐにわかります。エディター内に 1 つでもエラーがあると、このバーの右上隅に赤いボックスが表示されます。
図 20. エディター内に 1 つ以上のエラーがあることを示す概要ルーラーの赤いボックス
一方、黄色のボックスはエディター内に警告があることを意味します。
図 21. エディター内での警告の存在を示す概要ルーラー
概要ルーラーを使用して、エディター内のエラー/警告箇所に簡単にジャンプすることができます。エディター内にエラー/警告が表示されると、概要ルーラーには必ず小さな黄色/赤いマークが表示されます (図 22 を参照)。このマークをクリックするとすぐに、エディターはコード内の該当箇所にジャンプします。
図 22. 2 つの警告と 1 つの TODO コメントを示す概要ルーラー
概要ルーラーには、エディター内のその他の重要なポイントも示されます。例えば、TODO コメントがある場合、あるいは検索を実行した場合には、概要ルーラーの関連する行にマークが表示されます。このマークをクリックすると、該当する行が表示されます。
この名前からわかるように、概要ルーラーはエディター内で重要な行の概要を示します。Java コードを作成するときには、この概要ルーラーが貴重なガイド役になるはずです。
まとめ
今回の記事では、Eclipse の Java エディターに備わった高度な機能をいくつか取り上げて説明しました。共通のコードを自動的に生成する方法、さらに Eclipse エディターが提供するショートカットのおかげで、Eclipse のビューが閉じていてもその機能を使用する方法がわかったはずです。その他にも、この記事では生産性の大幅な向上につながる Java エディターの機能を紹介しました。
参考文献 学ぶために
製品や技術を入手するために
議論するために
著者について  | 
|  | Prashant Deva は Placid Systems の創立者であり、Eclipse 用の ANTLR Studio プラグインの作成者でもあります。彼は ANTLR や Eclipse プラグインの開発に関するコンサルティングも行っています。彼は ANTLR や Eclipse プラグインに関する記事を何本か執筆しており、また Eclipse の開発チームに対して頻繁にアイデアやバグ・レポートを寄せています。彼は現在、素晴らしい次期開発ツールを作成するために多忙な日々を送っています。 |
記事の評価
|