継承を委譲に置換
継承を委譲に置換リファクタリングを使用すると、親の機能を維持しながら、継承階層からクラスを削除できます。 IntelliJ IDEA は、以前のスーパークラスまたはインターフェースを継承するプライベート内部クラスを作成します。 親の選択されたメソッドは、新しい内部クラスを介して呼び出されます。
サンプル
前 | 後 |
|---|---|
// File Class.java
public class Class extends SuperClass {
public int varInt;
public void openMethod() {
...
}
}
// File SuperClass.java
public abstract class SuperClass {
public static final int CONSTANT=0;
public abstract void openMethod();
public void secretMethod() {
...
}
}
|
// File Class.java
public class Class {
public int varInt;
private final MySuperClass superClass = new MySuperClass();
public SuperClass getSuperClass() {
return superClass;
}
public void openMethod() {
superClass.openMethod();
}
private class MySuperClass extends SuperClass {
public void openMethod() {
...
}
}
}
// File SuperClass.java UNCHANGED
public abstract class SuperClass {
public static final int CONSTANT=0;
public abstract void openMethod();
public void secretMethod() {
...
}
}
|
継承を委譲に置き換えるダイアログ
このダイアログを使用して、 継承を委譲に置換 リファクタリングのオプションを指定します。
項目 | 説明 |
|---|---|
委譲で継承を置換する | ここで親オブジェクトを選択し、継承が置き換えられます。 |
フィールド名 | 新しい内部クラスのフィールドの名前を指定します。 |
内部クラス名 | このフィールドには、内部クラス定義の名前を指定します。 |
メンバーの委譲 | この領域では、内部クラスを介して委譲される親クラスのメンバーを選択します。 |
委譲したコンポーネントの getter を生成 | このオプションをチェックすると、内部クラスの getter が作成されます。 |
2026 年 3 月 30 日