EclipseではJavaなどで一つのクラス内で同じ処理内容が複数存在している場合、一つのメソッドとして抽出(統合)することが出来ます。この機能は同じ処理内容ではなくても選択したソースコードは別のメソッドとして抽出することも可能となります。
サンプルコード
Javaソース:メソッド抽出前
- 以下の様に3~7行目と9~13行目は同じ内容なのでこちらを一つのメソッドに抽出します。
123456789101112131415public static void main(String[] args) {if(enumNumberSet.contains(EnumNumber.NUMBER_1)) {System.out.println("EnumNumber.NUMBER_1は存在します。");} else {System.out.println("EnumNumber.NUMBER_1は存在しません。");}if(enumNumberSet.contains(EnumNumber.NUMBER_1)) {System.out.println("EnumNumber.NUMBER_1は存在します。");} else {System.out.println("EnumNumber.NUMBER_1は存在しません。");}}
メソッド抽出手順
- 抽出したいソースコードを範囲選択して右クリック後、「リファクタリング」⇒「メソッドの抽出」を選択します。ショートカットキー「Alt + Shift + M」でもOKです。
- メソッドの抽出画面でメソッド名を指定して必要に応じて各チェックボックスを選択して「OK」ボタンを選択します。
Javaソース:メソッド抽出後
- 以下の様に同じ処理内容が一つのメソッドとして抽出(統合)されているのが確認出来ます。
123456789101112131415public static void main(String[] args) {extracted();extracted();}private static void extracted() {if(enumNumberSet.contains(EnumNumber.NUMBER_1)) {System.out.println("EnumNumber.NUMBER_1は存在します。");} else {System.out.println("EnumNumber.NUMBER_1は存在しません。");}}