阅读(1094) (15)

IntelliJ IDEA使方法静态

2017-11-08 10:06:47 更新

IntelliJ IDEA 的使方法静态重构将实例方法转换为静态方法,并自动更正方法的所有调用、实现和重写。

note:此重构也可从 UML 类图中获得。

使方法静态重构示例

示例-1

重构前:

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) {
        ...
    }
}

示例-2

重构前:

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) {
        ...
    }
}

执行重构

  1. 在 "结构" 视图中选择要重构的方法,或者右键单击编辑器中的方法名称。在主菜单或选择的上下文菜单上,选择:重构|使静态(Refactor | Make Static)。将打开 "使方法静态" 对话框。
  2. 如果方法引用了任何包含的类字段,请执行以下操作之一:若要将整个引用对象作为参数传递给该方法,请选中 "将对象添加为带有名称的参数" 复选框并输入参数的名称。要将引用的字段/变量作为参数传递给方法,请选择 "为字段添加参数" 复选框并在列表中选择相应的字段。您也可以使用 "上移" 和 "下移" 按钮更改参数的顺序。
  3. 如果该方法不包含对字段或实例变量的任何引用,则应仅指定是否要用类引用替换实例限定符。
  4. 要预览结果,请单击 "查找" 工具窗口中的 "预览" 并检查重构的重用。如果没有问题,应用更改。

对调用层次结构中的方法进行静态重构

在调用层次结构中,如果方法调用者不包含对实例成员的任何其他引用,则 IntelliJ IDEA 建议您使这些调用者成为静态的。

示例

操作前:

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) { }
}

在上述的例子中,重构在 baz(int i) 执行。所有的调用者方法也被选为静态的。

执行重构时,将显示用于传播静态对话框的选择方法。通过此对话框您可以选择要使其成为静态的调用方方法。

IntelliJ IDEA方法静态