在代码重构和检视过程中,比较常见的是一个类或者方法职责不单一,导致代码有坏味道,这种情况就需要基于函数抽取,迁移来做代码重构,而迁移意味着调用点也需要同步修改,仅靠手动拷贝工作量大且易出错,此时就可以借助IDEA的重构能力。
函数迁移步骤:
示例代码:
- /**
- * @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");
- }
- }
鼠标选中函数名,键入Shift+Ctrl+Alt+t,选择Make Static
在弹出框右下角选择OK即可(不同IDEA版本可能不一样)
最后看到方法已经变为静态方法了
鼠标选中静态函数,键入F6,输入需要迁移到的包和类,如果包或者类不存在会自动创建。
如下图,可以看到方法已经迁移到了上图中填写的包和类中
如下图,之前调用的地方已经发生了修改
进入函数移动的类,鼠标选中静态函数,键入Shift+Ctrl+Alt+t,选择Convert To Instance Method。
在弹出框做如下选择,点击Refactor
关注原有调用的地方自动做了new实例的动作