1. 小声哔哔
在代码重构和检视过程中,比较常见的是一个类或者方法职责不单一,导致代码有坏味道,这种情况就需要基于函数抽取,迁移来做代码重构,而迁移意味着调用点也需要同步修改,仅靠手动拷贝工作量大且易出错,此时就可以借助IDEA的重构能力。
2. 函数迁移
函数迁移步骤:
- 步骤一:将函数静态化 Refactor(快捷键:Shift+Ctrl+Alt+t) -> Make Static
- 步骤二:移动函数(快捷键:F6)
- 步骤三:进入函数移动的类,实例化方法 Refactor(快捷键:Shift+Ctrl+Alt+t) -> Convert To Instance Method
示例代码:
/**
* @author: Coline
* @ClassName: ReconsitutionMoveMeth
* @Date: 2022/8/20 17:13
* @Description: 重构-函数迁移
*/
public class ReconsitutionMoveMeth {
public void tryMoveMeth() {
moveMeth();
}
/**
* 函数迁移步骤:
* 步骤一:将函数静态化 Refactor(快捷键:Shift+Ctrl+Alt+t) -> Make Static
* 步骤二:移动函数(快捷键:F6)
* 步骤三:进入函数移动的类,实例化方法 Refactor(快捷键:Shift+Ctrl+Alt+t) -> Convert To Instance Method
*/
public void moveMeth() {
System.out.println("Move Meth");
}
}
2.1. 将函数静态化
鼠标选中函数名,键入Shift+Ctrl+Alt+t,选择Make Static
在弹出框右下角选择OK即可(不同IDEA版本可能不一样)
最后看到方法已经变为静态方法了
2.2. 移动函数
鼠标选中静态函数,键入F6,输入需要迁移到的包和类,如果包或者类不存在会自动创建。
如下图,可以看到方法已经迁移到了上图中填写的包和类中
如下图,之前调用的地方已经发生了修改
2.3. 实例化方法
进入函数移动的类,鼠标选中静态函数,键入Shift+Ctrl+Alt+t,选择Convert To Instance Method。
在弹出框做如下选择,点击Refactor
关注原有调用的地方自动做了new实例的动作