IntelliJ IDEA 2026.1 Help

可能な場合はインターフェースを使用

可能ならインターフェースを使用リファクタリングは、基本クラス / インターフェースから派生した指定されたメソッドの実行を、祖先クラスまたは内部クラスのインスタンスに委譲し、同じインターフェースを実装します。

  1. エディターで、キャレットをクラスに配置し、メソッドを親クラスまたはインターフェースに委譲する必要があります。

  2. メインメニューまたはコンテキストメニューから、 リファクタリング | 可能ならインターフェースを使用 を選択します。

  3. 開いたダイアログで、現在のクラスの使用箇所を置き換える親オブジェクトを選択します。

  4. instanceof ステートメントで現在のクラス名を置き換えるには、オプション instanceof でインターフェース / スーパークラスを使用 をチェックします。

    instanceof ステートメントを使用し、このチェックボックスを選択しないままにすると、次のようなエラーが発生することがあります。

    if (secondInterface instanceof Class)

    このコードはコンパイルされますが、望ましくない結果が生じる可能性があります。

  5. 変更を プレビューして適用します。

サンプル

// File Class.java public class Class implements Interface { public void publicMethod() { ... } public void hiddenMethod() { ... } }
// File Class.java UNCHANGED public class Class implements Interface { public void publicMethod() { ... } public void hiddenMethod() { ... } }
// File Interface.java public interface Interface { int CONSTANT=0; void publicMethod(); }
// File Interface.java UNCHANGED public interface Interface { int CONSTANT=0; void publicMethod(); }
// File AnotherClass.java public class AnotherClass { Class firstClass; Class secondClass; public void method() { firstClass.publicMethod(); firstClass.hiddenMethod(); secondClass.publicMethod(); if (secondClass instanceof Class) { ... } ... } }
// File AnotherClass.java MODIFIED public class AnotherClass { Class firstClass; Interface secondInterface; public void method() { firstClass.publicMethod(); firstClass.hiddenMethod(); secondInterface.publicMethod(); if (secondInterface instanceof Interface) { ... } ... } }

可能な場合はインターフェースを使用ダイアログ

このダイアログは、 可能な場合はインターフェースを使用 リファクタリングを呼び出すと表示されます。

項目

説明

使用箇所の変更

現在のクラスの使用箇所を置き換える親クラスまたはインターフェースを選択してください。

instanceof でインターフェース / スーパークラスを使用する

このオプションがチェックされている場合、IntelliJ IDEA は選択されたスーパークラスまたはインターフェースに対する instanceof ステートメントの存在についてソースコードをスキャンし、見つかった場合はそれを変更します。

2026 年 3 月 30 日