首页 > 其他分享 >IDEA代码重构技巧 – 抽取+内联

IDEA代码重构技巧 – 抽取+内联

时间:2023-07-19 20:37:10浏览次数:38  
标签:重构 抽取 CTRL IDEA testStr testInt 内联 ALT

IDEA代码重构技巧--抽取+内联

1. 抽取

在做代码重构时,可能发现我们需要将变量,参数做抽取,或者某个方法过长,需要将这个方法中相同逻辑的代码块抽取出一个独立的函数,这时候就需要使用抽取,抽取有三类:

  1. 抽变量,IDEA快捷键 CTRL+ALT+V
  2. 抽参数,IDEA快捷键 CTRL+ALT+P
  3. 抽函数,IDEA快捷键 CTRL+ALT+M

示例代码:

package com.coline.extract;

/**
 * @Description: 抽取验证
 * 抽变量 CTRL+ALT+V
 * 抽参数 CTRL+ALT+P
 * 抽函数 CTRL+ALT+M
 */
public class ReconsitutionParam {
    private int testInt;
    private String testStr;

    /**
     * @Description: 抽取变量,选中this.testInt,键入CTRL+ALT+V
     */
    public void extractVariable() {
        System.out.println("testInt: " + this.testInt + "testStr: " + this.testStr);
    }

    /**
     * @Description: 抽取参数,选中函数第一行的变量testStr,键入CTRL+ALT+P
     */
    public void extractParam() {
        String testStr = this.testStr;
        System.out.println("testStr: " + testStr);
    }

    /**
     * @Description: 抽取函数,选中函数第一行的String testStr = this.testStr; ,键入CTRL+ALT+M
     */
    public void extractMethod() {
        int testInt = this.testInt;
        System.out.println("testInt: " + testInt + "testStr: " + testStr);
    }
}

1.1. 抽变量

选中可以被抽取的变量,例如示例函数extractVariable中的this.testInt,键入CTRL+ALT+V

1.2. 抽参数

选中需要被抽取的参数,例如示例函数extractParam中的变量testStr,键入CTRL+ALT+P,就会将变量抽取到方法参数中

1.3. 抽函数

选中需要被抽取的代码块,键入CTRL+ALT+M,就会将变量抽取到方法参数中

2. 内联

在做代码重构时有时会发现有的变量或者函数没必要被独立的抽取出来,增加了代码的阅读成本,同时也不利于后续的优化,此时我们需要使用内联简化代码 例如:变量只使用了一次,但是被独立的抽取出来了,这时可以使用内联将变量替换到调用的位置。函数内容很短,逻辑很简单,只被调用了一次,而且预期未来不会有别的地方调用,这时可以使用内联将函数内容替换到调用位置。

/**
 * @author: Coline
 * @ClassName: ReconsitutionInline
 * @Date: 2022/8/20 12:07
 * @Description: 重构-内联
 * CTRL+ALT+N
 */
public class ReconsitutionInline {
    private int testInt;
    private String testStr;

    /**
     * 验证内联变量
     * 选中变量,键入CTRL+ALT+N
     */
    public void inlineVariable() {
        int testInt = this.testInt;
        System.out.println("testInt: " + testInt + "testStr: " + this.testStr);
    }

    /**
     * 验证内联函数
     * 选中待内联函数,键入CTRL+ALT+N
     * @return
     */
    public String inlineMeth() {
        return inlineMethTmp();
    }

    public String inlineMethTmp() {
        return "I am inline Meth";
    }

}

2.1. 内联变量

选中需要被内联的变量,键入CTRL+ALT+N

2.2. 内联函数

选中需要被内联的函数,键入CTRL+ALT+N

标签:重构,抽取,CTRL,IDEA,testStr,testInt,内联,ALT
From: https://blog.51cto.com/panyujie/6779595

相关文章

  • 首页 idea反编译class文件成为Java文件
    首页idea反编译class文件成为Java文件在开发过程中,我们经常会遇到需要查看其他人编写的Java类的情况。但是,有时候我们只能获取到编译好的class文件,而无法获得源代码。这个时候,如果我们能够将class文件反编译成Java文件,就能更方便地理解和分析代码了。本文将介绍如何使用IntelliJ......
  • 解决IDEA安装/卸载插件后启动报错问题
    一.IDEA新安装并且卸载了一些插件,重启IDEA的时候报错Internalerror.Pleaserefertohttps://jb.gg/ide/critical-startup-errors二.关键信息错误为以下这些:1.com.intellij.diagnostic.PluginException:Fatalerrorinitializing'com.jiyuanime.ActivatePowerModeApplica......
  • 让代码优雅起来:记一次代码微重构实践
    一、需求开发修改代码一次需求开发时碰到如下所示方法代码:privateOrderShoudSettlementAmountgetOrderShoudSettlementAmount(OrderDTOorderMain,List<SettlementDetail>details){OrderShoudSettlementAmountsettlementAmount=newOrderShoudSettlementAmount();......
  • 好用的idea插件
    9.RestfulToolkit-fix接口路径查询插件假如在controller层写了RequestMapping路径,在方法上写了请求路径,使用这个插件时可以将两个路径拼接查询,他会自动拼接路径并进行查询本路径的方法,使用快捷键Ctrl+\或者Ctrl+Alt+n可快速弹窗,在选择路径的同时还可以选择请求方式查询7.SQLPara......
  • IDEA 启动报错:Error running 'DemoApplication': Command line is too long. Shorten
     IDEA启动报错:Errorrunning'DemoApplication':Commandlineistoolong.ShortencommandlineforDemoApplicationoralsoforSpringBootdefaultconfiguration. 修改 打开 修改成  然后在重新启动即可......
  • 消除警告(为那些被idea检查出来警告,但是没有错误的代码设置)
       ......
  • kruskal重构树和Prufer序列
    kruskal重构树 首先前置知识就是\(kruskal\)求最小生成树,就不再多说了。 \(kruskal\)重构树其实就是把最小生成树这个建成一个二叉树,然后这个图中所有的叶子节点都是原图中的节点。 其余的点每一个点都有一个权值\(w[i]\),代表从左边的集合到右边的集合的路径,优于重构......
  • idea报错 java: You aren't using a compiler supported by lombok, so lombok will
    转‘’:idea较新版本识别不了lombok生成的方法 在这增加参数:-Djps.track.ap.dependencies=false  ......
  • IntelliJ IDEA 永久开发工具下载安装详细教程
    简介IDEA全称IntelliJIDEA,是java编程语言的集成开发环境。IntelliJ在业界被公认为最好的Java开发工具下载安装►官网地址:https://www.jetbrains.com/idea►快速下载(官方安装包等工具)IDEA有两个版本,一个是Ultimate(旗舰版)一个是Community(社区版),旗舰版可以免费试用......
  • IDEA删除模块步骤
     然后在右击delete、删除、如果删除不成功就在夫工程的.idea时找到modules.xml和workspace.xml、删除要删除的模块最后记得重启idea(重要) ......