インスタンスメソッドに変換
インスタンスメソッドに変換リファクタリングでは、静的メソッドを静的ではないクラスインスタンスメソッドに変換できます。クラスは初期メソッドの型パラメーターです。
エディターで、リファクタリングしたいメソッドの宣言または使用箇所にキャレットを置きます。 メソッドは
staticでなければならず、そのパラメーターの型はプロジェクトからのクラスであるべきです。Stringのようなパラメーター型は使用できません。に移動します。
コンテキストメニューを使用して、このリファクタリングにアクセスすることもできます。
開いたダイアログで、変換後にメソッドを所属させたいクラスを選択します。 メソッド内のこのクラスのすべての用途は this に置き換えられます。
必要に応じて、変換されたメソッドの可視範囲を変更します。
プレビューと変更の適用
サンプル
同じパッケージにあるクラス MyClass、 ClassB、 ClassB を検討してください。
その結果、 MyClass と ClassB が変換されます。
public class MyClass {
ClassA classA = new ClassA();
ClassB classB = new ClassB();
static public void greatMethod(ClassA classA, ClassB classB){
System.out.println("classA = " + classA);
System.out.println("classB = " + classB);
}
public void myMethod(){
MyClass.greatMethod(classA, classB);
}
}
public class MyClass {
ClassA classA = new ClassA();
ClassB classB = new ClassB();
public void myMethod(){
classB.greatMethod(classA);
}
}
public class ClassB {
public void greatMethod(ClassA classA) {
System.out.println("classA = " + classA);
System.out.println("classB = " + this);
}
}
インスタンスメソッドに変換ダイアログ
このダイアログは、 インスタンスメソッドに変換 リファクタリングを呼び出すと表示されます。
項目 | 説明 |
|---|---|
インスタンスパラメーターを選択 | 変換後にメソッドが属するクラスを選択します。 メソッド内のこのクラスのすべての用途は |
可視性 | この領域では、変換されたメソッドの可視範囲を変更できます。 デフォルトでは、変換されたメソッドにはスコープ宣言がありません ( |
2026 年 3 月 30 日