SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Eclipse 3.4からはじめるIDE入門

Eclipse 3.4のコード生成&リファクタリング機能 ~Eclipse 3.4入門~

第8回

メソッドのプルアップ

 最後に、継承クラスでのリファクタリング機能のもうひとつの利用例として、プルアップ機能を説明します。プルアップはプッシュダウンの反対で、サブクラスのフィールドやメソッドをスーパークラスに移動することです。メソッドをプルアップする場合、移動する代わりにスーパークラスにそのメソッドのabstract宣言を追加してオーバライドに変更することもできます。今回は、先ほどHelloEmpクラスにオーバライドで作成したtoString()メソッドをHelloStaffクラスに移動してみましょう。
パッケージ・エクスプローラーで[HelloEmp]クラスの[toString()]を選択して[リファクタリング(T)]-[プルアップ(U)]を実行します。

図49:[toString()]を選択して[リファクタリング]-[プルアップ]を実行
図49:[toString()]を選択して[リファクタリング]-[プルアップ]を実行

 「プルアップ」ウィンドウが表示されるので、宛先が「hello1.HelloStaff」であること、メンバー[toString()]のチェックボックスがオンになっていること、アクションが[プルアップ]になっていることを確認して、[次へ(N)]をクリックします。

※注

 移動する代わりに、スーパークラスにそのメソッドのabstract宣言を追加してオーバライドに変更したい場合は、[アクションを設定(I)]をクリックして「アクションの設定」ウィンドウを表示し、[選択したメンバーのアクション(A)]を[宛先でabstractを宣言]に変更します。

図50:確認して[次へ(N)]をクリック
図50:確認して[次へ(N)]をクリック

 サブクラス内の除去するメソッドを選択するウィンドウに切り替わるので、確認して[次へ(N)]をクリックします。

図51:確認して[次へ(N)]をクリック
図51:確認して[次へ(N)]をクリック

 プレビュー画面に切り替わります。今回の場合も、スーパクラスとサブクラスのそれぞれに変更が加わりますので、[実行される変更]で1つずつ確認しましょう。まず、サブクラスである「HelloEmp」ではtoString()メソッドが削除されることがわかります。

図52:サブクラスの変更を確認
図52:サブクラスの変更を確認

 次に、[実行される変更]でスーパークラスである[HelloStaff]をクリックします。toString()メソッドが追加されています。同時に[super.getName()]が[this.getName()]に書き換えられています。確認して[終了(F)]をクリックしプルアップを実行します。

図53:スーパークラスの変更を確認して[終了]をクリック
図53:スーパークラスの変更を確認して[終了]をクリック

 エディタービューに戻ります。プレビューの通りに2つのクラスが変更されていることを確認します。パッケージ・エクスプローラーにも変更が反映しています。

図54:2つのクラスが変更されていることを確認
図54:2つのクラスが変更されていることを確認

まとめ

 今回の説明でコード生成機能とリファクタリング機能の初歩を理解できたと思います。プログラミング経験の長い方は「こんな機能使わなくても、自分でやった方が早い」と思うかもしれませんが、ポイントは作業ミスや変更モレの防止にあります。また、Eclipseは文法エラーを即時にチェックしてくれるのでタイプミスの発見はしやすいですが、リファクタリングを手で行った場合、文法エラーにならないような変更モレが起こることがあります。まずは、一度試しに使ってみてはいかがでしょうか?

 Eclipseのメニューバーを見て分かるとおり、Eclipseには多数のコード生成機能、リファクタリング機能が実装されています。今回紹介したのは、その中のほんのいくつかにすぎません。次回は、紹介しきれなかったEclipse 3.4のリファクタリング機能について、解説していきます。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Eclipse 3.4からはじめるIDE入門連載記事一覧

もっと読む

この記事の著者

平野正喜@ランドッグ・オーグ(ヒラノマサキ)

フリーのIT系執筆者&講使(※)の「ランドッグのマウ」こと平野正喜(HIRANO Masaki)です。【略歴】 1962年札幌市生まれ。今で言うIT企業のシステムエンジニア、プロジェクトリーダー、システムコンサルタント、採用担当などを経て独立し、2002年11月にランドッグ・オーグ平野正喜事務所(h...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3930 2009/06/17 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー