前言

在日常的开发工作中,我们经常需要重构,重构可以让我们写出的代码更上一层楼。所以,我会借助IntelliJ提供的一些功能,帮助我高效进行重构。这里是我推荐10个快捷方式,也是我每天都在使用的,非常有用。

欢迎关注个人公众号【JAVA旭阳】交流学习

1.将选择提取到局部变量

(Ctrl + Alt + V / Cmd + Opt + V)

IntelliJ 会建议一个名称,该名称有时非常切题,有时则不那么切题,但它处于编辑模式。如果您愿意,您还可以选择提取多次出现的选择或仅提取当前选择。

您可以选择的另一件事作为声明顶部的气泡弹出 — 是否使变量不可变(在本例中为 Kotlin var 或 val)以及可能的其他特定于语言的选项,如下面的 Kotlin 屏幕截图所示 — 是否指定类型。

2.将选择提取到字段/属性

(Ctrl + Alt + F / Cmd + Opt + F)

IntelliJ 提供的选项取决于语言,在下面的屏幕截图中 — 是为类定义还是为文件定义。选择后,您仍然可以使用与提取局部变量相同的选项。

3.提取选择到一个方法

(Ctrl + Alt + M / Cmd + Opt + M)

在窗口中,您将看到一旦您点击快捷组合,您就可以控制参数的可见性、顺序和名称,当然还有新方法的名称。

4.内联函数

(Ctrl + Alt + N / Cmd + Opt + N)

这与上面所有 3 个相反——将变量、字段或方法放回它们被使用的地方。同样,您有一些选项,例如内联单次或多次出现。

5.移动到下一个或上一个光标位置

(Ctl + Alt + ← 或 → / Cmd + Opt + ← 或 →)

这是快速浏览您编辑的最后几个位置的好方法。

6.代码生成

(Alt + Insert / Cmd + N)

同样,鉴于结果是 *上下文 *菜单,它取决于上下文,但通常你会用它来生成无聊的位,如equals(), hashCode(), getters 和 setters 或构造函数,实现接口方法等。

7.重命名变量、方法、类等

(Ctrl + Alt + R / Shift + F6)

这可能是所有人都非常熟悉的选项,它绝对是救星。如果您仅依靠复制粘贴来重命名可能已隐藏在代码中某处的变量,您可能最终会遇到错误。

有趣的是,您还可以仅重命名特定的事件或查找所有用法。重命名包时,您可以只重命名目录,也可以重命名包,因此请谨慎选择。

8.重构This

(Ctrl+Alt+Shift+T / Ctrl + T)

这是一个包罗万象的捷径。如果你不想一下子记住所有的东西,只要先记住这个,其余的就会及时出现。此组合向您显示所有可用的重构选择。所有以前的快捷方式都在这里,因此您可以将其用作起点。

此外,让我提请您注意一些不那么常用的重构:

  • Pull Members Up——将选定的成员(字段或方法)移动到父类
  • Push Members Down — 将选定的成员(字段或方法)移动到子类

在处理更复杂的层次结构时,这些非常棒,例如,如果您正在开发 API。

  • 提取超类
  • 提取接口

启动该过程后,您可以在弹出窗口中设置所有其他详细信息。

9. 检查代码

这不完全是一个捷径,但它是保持代码整洁的好方法。它位于 Code Menu -> Inspect Code… 下,您可以通过将分析范围限制为文件、模块、包或整个项目来选择分析范围。

然后它将为您提供按语言/框架和类型分组的问题和潜在问题列表。

对于一些更简单的警告,您可以通过右键单击并选择建议的解决方案来解决,对于其他警告,您将不得不这样做。

10. 转到声明或用法

  • 去声明一个成员(Ctrl + Alt + B / Cmd + Opt + B)
  • 转到某个成员的用法(Ctrl + Alt + B / Cmd + Opt + B) — 如果您多次使用该成员,您将看到上下文菜单弹出窗口,允许您选择确切的位置

欢迎关注个人公众号【JAVA旭阳】交流学习

IntelliJ中高效重构的 10 个快捷方式的更多相关文章

  1. Eclipse 中的重构功能

    Eclipse 中的重构功能使其成为了一个现代的 Java 集成开发环境 (IDE),而不再是一个普通的文本编辑器.使用重构,您可以轻松更改您的代码,而不必担心对别处造成破坏.有了重构,您可以只关注于 ...

  2. Intellij 中的git操作 转!

    http://blog.csdn.net/lovesummerforever/article/details/50032937 Git原理以后会分章节介绍,本次主要说一下intellij怎样操作git ...

  3. 高效DevOps的10项实践

    高效DevOps的10项实践 原文链接: http://www.drdobbs.com/architecture-and-design/top-10-practices-for-effective-d ...

  4. 在 PHP 7 中不要做的 10 件事

    在 PHP 7 中不要做的 10 件事 1. 不要使用 mysql_ 函数 这一天终于来了,从此你不仅仅“不应该”使用mysql_函数.PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好 ...

  5. 高效重构 C++ 代码

    引言 Martin Fowler的<重构:改善既有代码的设计>一书从2003年问世至今已有十几年时间了,按照计算机领域日新月异的变化速度,重构已经算是一门陈旧的技术了.但是陈旧并不代表不重 ...

  6. SpringCloud核心教程 | 第二篇: 使用Intellij中的maven来快速构建Spring Cloud工程

    spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环 ...

  7. eclipse中最有用的10个快捷键

    这里列出一些在使用eclipse的过程中最有用的10个快捷键,通过灵活使用这些快捷键可以提高开发效率和开发质量. 1. [ctrl+shift+r]打开资源 这可能是所有快捷键中最省时间的了.这个快捷 ...

  8. 【重构】AndroidStudio中代码重构菜单Refactor功能详解

    代码重构几乎是每个程序员在软件开发中必须要不断去做的事情,以此来不断提高代码的质量.Android Stido(以下简称AS)以其强大的功能,成为当下Android开发工程师最受欢迎的开发工具,也是A ...

  9. 《死磕 Elasticsearch 方法论》:普通程序员高效精进的 10 大狠招!(完整版)

    原文:<死磕 Elasticsearch 方法论>:普通程序员高效精进的 10 大狠招!(完整版) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链 ...

  10. Web 开发中很实用的10个效果【附源码下载】

    在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...

随机推荐

  1. Vue router简单配置入门案例

    { 注意驼峰命名法,不然会报错 } 1.在Views文件夹下创建Vue路由文件,例如: <template> </template>  <script> </ ...

  2. 如何判断多个url的状态 即是否能成功访问?

    假设我们所有的url在excel种我们可以用loadwork 这个库 遍历所有的url 放入 列表 再通过request 或者 httpx 来判断 这个网址status_code 进而放入mongo种 ...

  3. zk系列二:zookeeper实战之分布式统一配置获取

    前面介绍了zk的一些基础知识,这篇文章主要介绍下如何在java环境下获取zk的配置信息:主要基于zk的监听器以及回调函数通过响应式编程的思想将核心代码糅合成一个工具类,几乎做到了拿来即用: 在分布式集 ...

  4. Python 包(package)

    在比较大型的项目中常常需要编写.用到大量的模块,此时我们可以使用包(Package)来管理这些模块. (一)什么是包? Python包,就是里面装了一个__init__.py文件的文件夹. __ini ...

  5. Go语言核心36讲49

    我们在上一篇文章中简单地讨论了网络编程和socket,并由此提及了Go语言标准库中的syscall代码包和net代码包. 我还重点讲述了net.Dial函数和syscall.Socket函数的参数含义 ...

  6. 记一次 .NET 某自动化集采软件 崩溃分析

    一:背景 1.讲故事 前段时间有位朋友找到我,说他的程序在客户的机器上跑着跑着会出现偶发卡死,然后就崩掉了,但在本地怎么也没复现,dump也抓到了,让我帮忙看下到底怎么回事,其实崩溃类的dump也有简 ...

  7. 【Devexpress】gridcontorl设置某个特定单元格不可编辑

    在gridcontorl中一般情况下我们使用的都是设置一列不可编辑 那么如何设置一个单元格不可编辑呢 在gridView1_ShowingEditor事件中可以实现.这个事件的意思是允许取消激活编辑器 ...

  8. java环境改完版本后无效

    把C盘program files和X86两个文件夹中的Common Files中的Oracle文件夹删掉 这是jdk安装时自动生成的两个文件夹,记录了jdk的版本和路径,即使你的jdk安装路径不在C盘 ...

  9. 5V升压8.4V,5V转8.4芯片电路图

    PW5300是电流模式升压DC-DC转换器.其内置0.2Ω功率MOSFET的PWM电路使该稳压器具有效高的功率效率.内部补偿网络还可以程度地减少了6个外部元件的数量.误差放大器的同相输入接到0.6V精 ...

  10. 边框 display属性 盒子模型 浮动 溢出 定位 z-index

    目录 边框 隐藏属性 钓鱼网站 display visibility 盒子模型 调整方式 浮动 溢出 圆形头像的制作 定位 z-index属性 边框 /*border-left-width: 5px; ...