设为 static
Make Static 重构将内部类或实例方法转换为静态的。
对于 class ,此重构还会自动更正代码中对该类的所有引用。
对于 method ,此重构还会自动更正该方法的所有调用、实现和重写。
请选择您要重构的方法或类。
在主菜单或上下文菜单中,选择 。
在打开的对话框中,指定重构选项。
对于 类 ,如果该类引用了任何外部类字段,IntelliJ IDEA建议将外部类作为参数传递给内部类构造函数。
对于 方法 ,如果方法引用了任何包含类的字段,您可以将整个引用对象作为参数传递给方法(将对象作为具有以下名称的参数添加 ),或者将引用的字段/变量作为参数传递给方法(添加参数字段)。
如果方法不包含对字段或实例变量的任何引用,您可以指定是否希望用类引用替换实例限定符。
将方法设为静态的示例
之前 | 之后 |
|---|---|
class ConnectionPool {
public int i;
public int j;
public void getConnection() {
...
}
}
|
class ConnectionPool {
public int i;
public int j;
public static void getConnection(ConnectionPool connectionPool) {
...
}
}
|
class ConnectionPool {
public int i;
public int j;
public void getConnection() {
...
}
}
|
class ConnectionPool {
public int i;
public int j;
public static void getConnection(int i, int j) {
...
}
}
|
在调用层次结构中,如果方法调用者不包含对实例成员的任何其他引用,IntelliJ IDEA 建议您也将这些调用者设为静态。 在此示例中,将对 baz(int i) 进行重构。 所有调用方法也被选择为静态。 适当的对话框允许您选择要设为 static 的调用者方法。
之前 | 之后 |
|---|---|
class CallHierarchySample {
private void foo(int i) { bar(i);}
private void bar(int i) { baz(i);}
private void baz(int i) { }
}
|
class CallHierarchySample {
private static void foo(int i) { bar(i);}
private static void bar(int i) { baz(i);}
private static void baz(int i) { }
}
|
将类设为静态对话框
请使用此对话框指定 设为 static 重构的选项。
条目 | 描述 |
|---|---|
将实例限定符替换为类引用 | 请指定是否要用类引用替换实例限定符。 |
使方法静态对话框
请使用此对话框指定 设为 static 重构的选项。
条目 | 描述 |
|---|---|
将对象作为具有以下名称的参数添加 | 如果您希望将整个引用对象作为参数传递给方法,请选择此复选框,然后在下面的字段中指定参数的名称。 |
添加参数字段 | 选中此复选框以将引用的字段/变量作为参数传递给方法,然后在列表中选择适当的字段。 |
上移/下移 | 请使用此按钮重新排序列表中的参数。 |
将实例限定符替换为类引用 | 请指定是否要用类引用替换实例限定符。 复选框可用,如果该方法不包含对字段或实例变量的任何引用。 |