【idea重构快捷键】容易被大家忽视但特别有用的idea快捷键

1,307 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情

前言:

工欲善其事必先利其器,作为一个后端开发我们现在的用的开发工具应该都是idea(可能也有一部分小伙伴用的是Eclipse,博主前前公司就是要用Eclipse,因为就是普通的SSM项目要跑Tomcat容器,idea社区版又不支持跑Web容器),对于一些常见的快捷命令我们应该都比较熟悉,比如Ctrl + Alt + L:格式化代码,Ctrl + P:参数信息提醒,双击Shift:查找所有,Ctrl + Shift + F:查找字符等。但是idea中还有一些非常强大的快捷键功能,使用这些快捷键可以减少我们重构代码的时间。

一丶CTRL+F6:重构类、方法

当我们写好了一个方法,我们如果在很多地方用到了这个方法,如果我们直接需要在这个方法上面加参数,我们修改完方法,其他使用到这个方法的地方就会报错,会显示需要的参数和实际传入参数长度不符,这时候我们就可以用这个快捷键

重构前:

public class Test {


    private static void run(String name) {

    }


    private static void accept(String name){
        Test.run(name);
    }

    public static void main(String[] args) {
        Test.accept("测试Idea重构方法快捷键CTRL+F6");
        Test.run("测试Idea重构方法快捷键CTRL+F6");
    }
}

重构run方法:

2.png

3.png 重构后:

public class Test {


    private static void run(String name, Boolean isRun) {

    }


    private static void accept(String name){
        Test.run(name, false);
    }

    public static void main(String[] args) {
        Test.accept("测试Idea重构方法快捷键CTRL+F6");
        Test.run("测试Idea重构方法快捷键CTRL+F6", false);
    }
}

我们可以看到我们使用CTRL+F6快捷键会弹出一个页面,在那个上面我们可以修改方法的访问修饰符和返回类型等一些操作,我们现在需要在方法上加一个参数,我加了一个isRun的flag参数,默认是false,我们进行了这个操作后,我们可以看到我们成功修改了方法参数,并且在所有调用这个方法的地方全部加了默认值false。

二丶CTRL+ALT+M:提取代码块变成为方法(Method)

我们都知道单一职责原则,一个类或者一个方法只应该做一类的事情,不应该在方法中存在很多个业务维度处理的代码,所以这个时候我们就需要来重构方法,我们一般都会手动选中复制代码,然后创建一个方法,把代码copy进去设置好出参和入参,其实我们也可以用到Idea重构提取代码为方法的快捷键CTRL+ALT+M

  • 重构前:
@Component
public class Test {

   @Autowired
   private OrderMapper orderMapper;

   @Autowired
   private IntegralMapper integralMapper;

   public void insertOrder(Long userId) {
       // 添加订单
       Order order = new Order();
       order.setUserId(userId);
       orderMapper.insert(order);

       // 增加用户积分
       Integral integral = new Integral();
       integral.setUserId(userId);
   }
   
}
  • 重构后:
@Component
public class Test {

    @Autowired
    private OrderMapper orderMapper;

    @Autowired
    private IntegralMapper integralMapper;

    public void insertOrder(Long userId) {
        // 添加订单
        Order order = new Order();
        order.setUserId(userId);
        orderMapper.insert(order);

        insertIntegral(userId);
    }

    private void insertIntegral(Long userId) {
        // 增加用户积分
        Integral integral = new Integral();
        integral.setUserId(userId);
    }

}

我们可以看到上面那个方法里面包含了两个业务维度,一个是添加订单,一个是增加用户积分,这个时候我们就需要重构这个方法,我们使用这个快捷键他会自动为我们创建一个方法我们只需要设置好方法名和返回值就行。

三丶CTRL+ALT+P:提取当前选择为方法参数(param)

  • CTRL+ALT+C:提取当前选择为常量(constant)
  • CTRL+ALT+V:提取当前选择为变量(variable)
  • CTRL+ALT+F:提取当前选择为属性(filed)

提取当前选择为方法参数重构前

public void insertOrder(Long userId) {
    // 添加订单
    Order order = new Order();
    order.setUserId(userId);
    orderMapper.insert(order);

    insertIntegral(userId);
}

提取当前选择为方法参数重构后

public void insertOrder(Long userId, Order order) {
    // 添加订单
    order.setUserId(userId);
    orderMapper.insert(order);

    insertIntegral(userId);
}

我们选中一个方法中的变量或者常量,按住CTRL+ALT+P他就会自动变成方法参数,其他几个方法大家可以自行尝试,比如我们需要提取一个字符串为常量,我们就可以使用CTRL+ALT+C,然后选择是否要重新引用所有用到这个字符串的地方

总结

上面那些提取代码或者重构代码的场景我们在工作中遇到的肯定是非常的多,使用这些快捷键真的可以加快自己编码的速度,希望使用idea的小伙伴可以get到这个技能。