可能な場合はインターフェースを使用
可能ならインターフェースを使用リファクタリングは、基本クラス / インターフェースから派生した指定されたメソッドの実行を、祖先クラスまたは内部クラスのインスタンスに委譲し、同じインターフェースを実装します。
エディターで、キャレットをクラスに配置し、メソッドを親クラスまたはインターフェースに委譲する必要があります。
メインメニューまたはコンテキストメニューから、 を選択します。
開いたダイアログで、現在のクラスの使用箇所を置き換える親オブジェクトを選択します。
instanceofステートメントで現在のクラス名を置き換えるには、オプション instanceof でインターフェース / スーパークラスを使用 をチェックします。instanceofステートメントを使用し、このチェックボックスを選択しないままにすると、次のようなエラーが発生することがあります。if (secondInterface instanceof Class)このコードはコンパイルされますが、望ましくない結果が生じる可能性があります。
変更を プレビューして適用します。
サンプル
前 | 後 |
|---|---|
// 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) {
...
}
...
}
}
|
可能な場合はインターフェースを使用ダイアログ
このダイアログは、 可能な場合はインターフェースを使用 リファクタリングを呼び出すと表示されます。
項目 | 説明 |
|---|---|
使用箇所の変更 | 現在のクラスの使用箇所を置き換える親クラスまたはインターフェースを選択してください。 |
| このオプションがチェックされている場合、IntelliJ IDEA は選択されたスーパークラスまたはインターフェースに対する |
2026 年 3 月 30 日