IntelliJ IDEA 2026.1 Help

インターフェースの抽出

インターフェースの抽出 リファクタリングでは、次のオプションがあります。

  • クラスのメソッドに基づいてインターフェースを作成します。

  • 元のクラスの名前を変更すると、新しく作成されたインターフェースが実装されます。 このような場合、IntelliJ IDEA は元のクラスのすべての使用箇所を、可能な限りインターフェースを使用するように変更します。

さらに、初期クラスで宣言された静的最終フィールドは、インターフェースに移動できます。 その結果、特定のメソッドとフィールドを含むインターフェースが作成されます。 これにより、指定されたクラスメソッドは、対応するインターフェースメソッドの実装になります。

サンプル

ここではクラスがあり、 インターフェースの抽出 リファクタリングを実行して、クラスのメソッドに基づいてインターフェースを作成します。

// File AClass.java class AClass { public static final double CONSTANT = 3.14; public void publicMethod() { } public void secretMethod() { } }
// File AClass.java class AClass implements AnInterface { public void publicMethod() { } public void secretMethod() { } // File AnInterface.java public interface AnInterface { double CONSTANT = 3.14; void publicMethod(); } }

可能であれば元のクラスの名前を変更してインターフェースを使用する オプションが選択されている場合の インターフェースの抽出 リファクタリングの別の例

public class FormerAClass implements AClass { public void publicMethod() { } public void secretMethod() { } }
public interface AClass { double CONSTANT=3.14; void publicMethod(); }

すでに別のインターフェースを実装しているクラスからインターフェースを抽出することができます。 AnInterface を実装したクラスからインターフェースを抽出しましょう。 AnotherInterface (抽出されたインターフェース)が AnInterface (既存のもの)を拡張するか、ソース AClass が両方とも実装したいかによって、次のコードが得られます:

抽出済みインターフェース は既存のものを拡張します:

class AClass implements AnotherInterface { public void publicMethod() { //some code here } public void secretMethod() { //some code here } }

抽出済みインターフェース:

public interface AnotherInterface extends AnInterface { }

ソースクラス は両方のインターフェースを実装しています。

ソースクラス:

class AClass implements AnInterface, AnotherInterface { public void publicMethod() { //some code here } public void secretMethod() { //some code here } }

抽出済みインターフェース:

public interface AnotherInterface { }

インターフェースを抽出する

  1. プロジェクト ビュー、 構造 ビューでクラスを選択するか、クラス内の任意の場所にキャレットを配置します。

  2. メインメニューまたは選択項目のコンテキストメニューから、 リファクタリング | 抽出 | インターフェース を選択します。 「インターフェースの抽出 」ダイアログが表示されます。

  3. 新しいインターフェースを抽出するには、 インターフェースの抽出 オプションを選択し、新しいインターフェースの名前を指定します。

    元のクラスの名前を変更して、新しく作成されたインターフェースの実装にするには、 可能であれば元のクラスの名前を変更してインターフェースを使用する オプションを選択し、元のクラスの新しい名前を指定します。 IntelliJ IDEA は、すべての元のクラスの使用箇所を、それがまだ必要な場合にのみ実装の使用箇所に変更します。

  4. 新しいインターフェースが配置されるパッケージを指定します。

  5. インターフェースを形成するメンバー 領域のinterfaceに表示するクラスメンバーを選択します。 リストには、クラスのすべてのメソッドと最終的な静的フィールド(定数)が表示されます。

  6. JavaDoc エリアで、 JavaDoc に適用するアクションを選択します。

    • そのままにしておくには、 そのまま オプションを選択します。

    • 抽出したインターフェースにコピーするには、 コピー オプションを選択します。

    • 抽出したインターフェースに移動するには、 移動 オプションを選択します。

  7. 続行するには リファクタリング をクリックします。

  8. 準備ができたら リファクタリング をクリックします。 IntelliJ IDEA が 検索 ツールウィンドウに リファクタリングプレビュー を表示している場合は、提案された変更を確認してください。 インターフェースを抽出して提案された変更を適用するには、 リファクタリング実行 をクリックします。

2026 年 3 月 30 日