IntelliJ IDEA 2021.1 ヘルプ

コードリファクタリング

リファクタリング(英語)は、新しい機能を作成せずにソースコードを改善するプロセスです。リファクタリングは、コードを安定した dry(英語) に保ち、保守を容易にできます。

リファクタリングの呼び出し

  1. リファクタリングするアイテムを選択します。エディターでプロジェクトツールウィンドウまたは式 / シンボルでファイル / フォルダーを選択できます。

  2. 選択可能なリファクタリングのリストを開くには、Ctrl+Alt+Shift+T を押します。

    refactor this popup

    または、特定のリファクタリング用のキーボードショートカットを使用することもできます。

リファクタリングを元に戻す必要がある場合は、Ctrl+Z を押します。

リファクタリングの変更をプレビューする

一部のリファクタリングでは、IntelliJ IDEA を適用する前に変更内容をプレビューすることができます。

  1. 潜在的な変更(リファクタリングが実行される使用箇所のリスト)を表示するには、リファクタリングのプレビューダイアログでプレビューをクリックします。

    Refactoring dialog
  2. 検索ツールウィンドウで行われる変更を確認します。 Delete を除外するか、不要と思われる Ctrl+X の変更を削除できます。

    Refactoring Preview window

  3. リファクタリング実行をクリックして、変更を続行します。

競合の解決

IntelliJ IDEA があなたのリファクタリングで問題に遭遇すると、衝突のリストとそれらの簡単な説明があるダイアログを開きます。

Refactoring confilicts dialog
  • 続行をクリックして問題を無視し、検索ツールウィンドウでプレビューを開きます。

  • ビューで競合を表示をクリックして、検索ツールウィンドウの競合エントリを開き、さらに処理します。

    例: Delete を押すかキャンセルをクリックしてリファクタリングからエントリを除外し、エディターに戻ることができます。

    Refactoring conflicts tool window

    リファクタリング設定を構成する

    1. 設定 / 環境設定ダイアログ Ctrl+Alt+S で、エディター | コード編集を選択します。

    2. コード編集ページのリファクタリングセクションでリファクタリングオプションを調整し、OK をクリックします。

    安全な削除 Alt+Delete ソースコードで参照されているファイルを削除しないようにします。 安全な削除
    コピー / 移動 F5 / F6 要素をコピー / 移動します。 移動リファクタリング
    メソッドの抽出 Ctrl+Alt+M これらのリファクタリングアクションは、コードの重複を減らすのに役立ちます。 メソッドの抽出
    定数の抽出 Ctrl+Alt+C 定数の抽出
    フィールドの導入 Ctrl+Alt+F フィールドの導入
    パラメーターの導入 Ctrl+Alt+P パラメーターの導入
    変数の導入 Ctrl+Alt+V 変数の抽出 / 導入
    名前変更 Shift+F6 要素の名前を変更します。 名前の変更リファクタリング
    インライン化 Ctrl+Alt+N 要素をインライン化します。抽出の反対の行為。 インライン化
    シグネチャーの変更 Ctrl+F6 メソッドまたはクラスの呼び出しシグネチャーを変更します。 シグネチャーの変更

    関連ページ:

    検索ツールウィンドウ | IntelliJ IDEA

    検索ツールウィンドウには、次の検索結果が表示されます。パス内検索 / 置換、使用箇所の検索、構造検索と置換、リファクタリングのプレビュー、データソースの使用箇所の検索、表、または列。使用箇所ペインは、親コードペインでエントリが選択されたときに依存関係ビューアーに表示されます。各検索の結果は、別のタブに表示されるか、または新規タブで開くダイアログ設定に応じて、現在のタブの内容を置き換えます。デフォルトでは、ウィンドウが画面の下部に表示されます。一連のボタン、結果のウィンドウ、およびパス内置換、構造...

    移動リファクタリング | IntelliJ IDEA

    コピーリファクタリングでは、別のパッケージにクラスのコピーを作成できます。また、ファイル、ディレクトリ、またはパッケージのコピーを別のディレクトリまたはパッケージに作成することもできます。コピーを実行するリファクタリングリファクタリングする識別子(エディター内のクラスまたはプロジェクトツールウィンドウ内のファイルなど)を選択します。を選択、コピーウィンドウで、コピーの名前と場所を指定し、OK をクリックします。移動リファクタリングを使用すると、プロジェクトのソースルート間でパッケージとクラスを移動...

    メソッドの抽出 | IntelliJ IDEA

    メソッドの抽出リファクタリングを使用すると、グループ化できるコードフラグメントを取得し、別のメソッドに移動して、古いコードをメソッドの呼び出しに置き換えることができます。メソッドを抽出するとき、変数を確認する必要があります。出力変数が 1 つの場合、抽出されたメソッドの戻り値として使用されます。複数の出力変数がある場合、メソッドの抽出リファクタリングが適用されず、エラーメッセージが表示されます。この場合、メソッドの抽出を動作させるためのいくつかの回避策があります。例: すべての出力値を含む特別な...

    定数の抽出 | IntelliJ IDEA

    定数の抽出リファクタリングにより、ソースコードを読みやすく保守しやすくなります。また、ハードコードされた定数を値や目的について何の説明もしないで使用するのを避けるのに役立ちます。エディターで、定数で置き換えたい変数の式または宣言を選択します。を押して定数を入力するか、を選択します。表示されたリストから名前を選択するか、自分の名前を入力してを押します。または、を 2 回押して定数の抽出ダイアログを開き、そこでやにしたり、定数を別のクラスに移動するなど、定数の追加オプションを指定できます。サンプ...

    フィールドの導入 | IntelliJ IDEA

    フィールドの導入リファクタリングでは、新しいフィールドを宣言し、選択した式で初期化することができます。元の式はフィールドの使用箇所に置き換えられます。その場でフィールドを抽出するフィールドに抽出するコードの一部内にキャレットを配置します。を押すか、メインメニューからを選択します。導入する式をフィールドとして選択します。IntelliJ IDEA がコード内に複数の出現箇所を検出した場合、置き換える出現箇所を指定できます。を 2 回押してフィールドの導入ダイアログを開くと、可視性オプションや変数を...

    変数の抽出 / 導入 | IntelliJ IDEA

    変数の抽出リファクタリングは、理解しにくい表現を見つけたり、コード全体のいくつかの箇所で重複したりすると、そのような表現やその部分の結果を複雑ではない別の変数に配置する際に役立ちます。理解しやすいさらに、コードの重複を減らすことができます。Java 1.8 以降のバージョンから、IntelliJ IDEA では機能型変数も抽出できます。Java バージョンがパターンマッチング(Java 14 プレビュー以降)をサポートしていて、チェックでキャスト式を抽出している場合、IntelliJ IDEA...