Eclipseで繰り返し使うコードをメソッドとして抽出するには?

Javaのコーディングをしている時に

     同じようなコードを何回も書いているなぁ

ということはないですか?

毎回同じコードを書くのは面倒ですし、コピー&ペーストを繰り返したとしても
うっかりミスを起こしてしまう可能性もあるかと思います。

繰り返し使うコードは「メソッドとして別に定義しておく」とよいでしょう。



Eclipseには、「メソッドの抽出」という機能があります。
メソッドとして切り出したいコードの断片をエディター上で選択し、
「メソッドの抽出」というメニューを選択するだけで、
自動的に新たなメソッドを生成してくれます。

具体的な操作方法を見ていきましょう。

(1)
Javaエディター上で、メソッドとして切り出したいコード断片を選択します。


(2)
コードを選択した状態のまま、右クリックしてコンテキスト・メニューから
「リファクタリング」>「メソッドの抽出」を選択します。

extract_method1.png

(3)
「メソッドの抽出」ダイアログが表示されるので、メソッド名を入力します。

extract_method2.png

※「プレビュー」ボタンをクリックすると、実際にどのようなコードが生成されるのかを
   事前に確認することができます。

(4)
最後に「OK」ボタンをクリックしたら、メソッドの抽出作業が完了です。


メソッドの抽出操作の前と後とを見比べてみましょう。

【抽出前】
extract_method4.png

【抽出後】
extract_method5.png

抽出後のメソッドには、必要に応じて引数や戻り値も正しく設定されます。


なお、Eclipse3.4以降をお使いになられている場合は、クイックアシスト(Ctrl+1 キーを押すだけ)を使って
メソッドの抽出ができます。

こちらも、使い方はとても簡単です。
Javaエディター内で、メソッドとして切り出したいコードの断片をエディター上で選択し、Ctrl+1キーを押すと・・・

extract_method6.png


表示されたポップアップの中に「メソッドに抽出します」のメニューが表示されていますね。
さらに、右側には、実際にどのようなコードが生成されるのかが表示されています。

このメニューを選択すると、ダイアログなどは表示されず、すぐにメソッドの抽出が行われます。
生成されたメソッド名は、「extracted」という名前になります。

クイックアシストを使用した場合、メソッド名を自分で決めることができませんので、
変更したい場合はリファクタリングの「メソッド・シグニチャーの変更」メニューなどを利用して、
ご自分でメソッド名の変更を行ってください。