リファクタリング機能

リファクタリング機能

   Java開発において、IDEを利用する大きなメリットの1つに「リファクタリング」機能があります。コードの再利用性、保守性、可読性などを上げるためにも、リファクタリングは非常に有効な手段です。

   Eclipseで利用可能なリファクタリング機能には、以下のようなものがあります。


  • クラス/メソッド/変数などの名前変更
  • クラス/メソッド/変数などの移動
  • メソッドシグネチャの変更
  • 匿名クラスをネストに変換
  • メソッドの抽出
  • ローカル変数の抽出
  • フィールドのカプセル化
表2:Eclipseで利用可能なリファクタリング機能

   ちなみに細かい部分ですが、Eclipse 3.3から名前変更がダイアログではなく、直接エディタ上で行えるようになり、さらに便利になりました。


Eclipseのリファクタリング機能(名前変更)
図17:Eclipseのリファクタリング機能(名前変更)
(画像をクリックすると別ウィンドウに拡大図を表示します)

   JDeveloperにおいても、クラス/メソッド/変数などの名前変更や移動、メソッドやローカル変数の抽出などのリファクタリング機能が利用可能となっています。またJDeveloper固有のリファクタリング機能の1つとして、クラスの複製もできます。


クラスの複製
図18:クラスの複製
(画像をクリックすると別ウィンドウに拡大図を表示します)

ソースコードのナビゲート機能

   コードリーディングの際に便利な機能にナビゲート機能があります。たとえばEclipseでは、エディタのクラスやメソッド上で「F3」キー(ある いは「Ctrl+左クリック」)を押すことで、その宣言部分にジャンプすることができます(右クリックメニューでは「Open Declaration」からジャンプ可能です)。



メソッド上で「F3」をクリック
図19:メソッド上で「F3」をクリック
(画像をクリックすると別ウィンドウに拡大図を表示します)

メソッドの宣言部分にジャンプ
図20:メソッドの宣言部分にジャンプ
(画像をクリックすると別ウィンドウに拡大図を表示します)

   逆に、呼び出しもとを調べたい場合は、「Ctrl+ALT+H」(右クリックメニューでは「Open Call Hierarchy」)より、呼び出しもと一覧を表示することもできます。

   JDeveloperにも同様の機能が搭載されており、宣言部分へのジャンプは右クリックより「Go to Declaration」、呼び出しもと表示については「Ctrl+ALT+U」(右クリックメニューでは「Find Usages」)で利用可能となっています。



JDeveloperの呼び出しもと表示機能
図21:JDeveloperの呼び出しもと表示機能
(画像をクリックすると別ウィンドウに拡大図を表示します)

   なお、Eclipse、JDeveloperともに、ツールバーの矢印ボタンからナビゲートの履歴をたどることが可能です。このほかにもアウトライン表示や各種の検索機能が用意されていますのでコードを追いかける際に活用するとよいでしょう。

まとめ

   数多くの手軽で便利な機能を持つIDEの登場が、Javaコーディングの効率アップ、ひいてはJava開発自体の生産性向上に大きな役割を果たした のは間違いないでしょう。特に、今回紹介したコードアシストやリファクタリングなどは、いまやJava開発には欠かせない機能となっています。

   今回紹介してきたように、EclipseとJDeveloperは非常に多くの便利な機能を備えています。ただ、日常業務でJava開発をしている 人でも、実は提供されている豊富な機能の一部しか使ってないという方も多いのではないでしょうか。より効率のよい開発を実現するためにも、強力にサポート してくれる様々な機能をぜひ活用してみて下さい。

   次回はWeb開発現場においてEclipseとJDeveloperが提供している主要な機能を紹介します。

(監修:NTTデータ先端技術株式会社 竹添 直樹)

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30