Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(重构篇)

【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(重构篇)

作者头像
YourBatman
发布于 2022-09-16 04:35:11
发布于 2022-09-16 04:35:11
8750
举报
文章被收录于专栏:BAT的乌托邦BAT的乌托邦

本文已被https://yourbatman.cn收录;女娲Knife-Initializr工程可公开访问啦;程序员专用网盘https://wangpan.yourbatman.cn;技术专栏源代码大本营:https://github.com/yourbatman/tech-column-learning;公号后台回复“专栏列表”获取全部小而美的原创技术专栏

你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。

Title

Link

所属专栏

【方向盘】-IntelliJ IDEA

源代码

https://github.com/yourbatman/FXP-java-ee

程序员专用网盘公益上线啦,注册送1G超小容量,帮你实践做减法

https://wangpan.yourbatman.cn

Java开发软件包(Mac)

https://wangpan.yourbatman.cn/s/rEH0 提取码:javakit

女娲工程

http://152.136.106.14:8761

版本约定

[Mac OS 12.3],[iTerm2 3.4.15(zsh 5.8)],[IntelliJ IDEA 2021.3.3]

📚前言

本系列上篇文章介绍了IDEA里关于代码补全相关的快捷键,感受到了IDEA强大的代码智能补全功能了吧,对比eclipse就知晓二者的差距,IDEA的成功是有原因的。

在敲代码过程中,代码总是被改来改去的,不免会经常出现提取变量、抽取方法、重命名、移动位置等等动作,这时若利用好Java强类型语言的特性,再加上本文将要介绍的快捷键,可事半功倍。

✍正文

很多时候我们去优化代码,不是因为不会,而是不想动、不敢动。怎么打破这种局面,根本的方法就是利用好工具,借助它的能力来帮我们确保一些正确性,减少不必要的重复劳动,进而提升效率和质量。

熟练使用本文介绍的快捷键,可能可以让你更愿意去解决代码坏味道,提升代码可读性,产生价值。

IntelliJ IDEA快捷键

✌Extract抽取

你有没有吐槽过:这段代码里的0代表什么意思?1代表什么意思?20代表什么意思?

这时,代码需要优化、需要对某些值抽取为变量,以增加代码可读性,方便维护。下面介绍这些实用的快捷键。

Introduce Variable

Action Name

Key

Introduce Variable

command + option + v

local variable. 引入变量/抽取变量。注意:这里引入/抽取的变量指的本地变量、局部变量。

这个快捷键还是比较常用的,典型的应用场景:

  • 将魔法值抽取成有语义的变量

这里的2和2+3语义就不明确,属于魔法值需要尽量避免的。通过该快捷键就可以抽取本地变量进行描述,如下:

  • 将多次出现的值(比如字符串)抽取成为变量,方便阅读和维护
Introduce Field

Action Name

Key

Introduce Field…

command + option + f

field variable. 引入成员变量,也叫属性。值得关注的是:

  • 从static静态方法引入变量,那么成员变量就是static的
  • 从实例方法引入变量,那么成员变量就是非static的
Introduce Constant

Action Name

Key

Introduce Constant…

command + option + c

constant. 引入常量。该快捷键就非常非常常用喽,毕竟一般来讲魔法值大都可以改为常量来描述,语义更加明确。

Introduce Parameter

Action Name

Key

Introduce Parameter…

command + option + p

parameter. 抽取为参数(方法入参)。当你发现方法内的某个值不能写死,而是需要通过方法入参传进来的时候,使用此快捷键抽取就非常方便了。

选中nums后按下此快捷键,即可将其提取到方法参数里,效果如下:

Extract Method

Action Name

Key

Extract Method…

command + option + m

method. 抽取方法,显而易见这个快捷键太有用了:将功能抽取为私有方法,增加代码可读性。

inline

Action Name

Key

inline…

command + option + n

将分步的代码使用的内联的方式放在一起。和上面抽取是反向的。举例:

觉得fromIndex不需要定义,直接使用2这个值就成:

选中fromIndex这个变量,按下此快捷键,效果为:

再看方法inline。觉得getSubList()方法没必要独立出来,希望把逻辑内联聚合在一起:

选中getSubList方法,然后按下此快捷键,效果为:

若方法只有一个地方使用,inline后其实就可以remove掉嘛。点击Refactor确定后效果为:

老实讲,这个快捷键用得其实是比较少的。毕竟大多数情况下,抽取出来独立声明都是会更好些的。但也难免有些为了抽取而抽取,毫无章法、无依据可言的做法,这时“合并”一些代码此快捷键就是一把利器了。

✌Refactor重构

正所谓重构一时爽,出错火葬场。即使它的“风险性”比较高,但相信“有追求”的程序员依旧乐此不疲。

其实Java语言对重构是非常友好的,这是强类型语言的最大优势之一。虽然说重构有风险,但只要让风险相对可控,这件事情是非常有必要去做的。接下来就介绍重构方面的常用功能快捷键。

Rename

Action Name

Key

Rename…

shift + f6

重命名。

  • 变量(本地变量、成员变量、静态全局变量)重命名
  • 方法重命名
  • 类重命名

结合Java强类型语言的特性,重命名在Java里非常非常非常好用。

重命名文件,也是这个快捷键。由于Java文件一般和class类名一样,因此重命名文件对应的类名也会随着变化。

Change Signature

Action Name

Key

Change Signature…

command + f6

改变方法签名。鼠标焦点停留在方法签名上,按下此快捷键:

可以看到这里也可以改变方法名称(重命名),除此之外还有入参、返回值、访问权限、异常声明等等。

Tips:据我了解,不少同学不知道方法签名指的什么,包含哪些要点内容。通过上面这张截图应该了然于胸了吧

Move

Action Name

Key

Move…

f6

移动静态方法、移动静态全局变量,将它从类A移动到类B。注意:移动的对象必须是static静态的。

比如:希望将getSubList这个静态方法移动到另一个类里面。选中该方法,按下此快捷键:

填好To目的地的类名,即可完成移动。

Tips:静态成员都可移动,即使访问修饰符是private

Copy

Action Name

Key

Copy…

command + ⌦

Tips:键盘上的delete是⌫,而⌦是:fn + delete

安全删除。这对很多人来讲可能是一个全新名词,什么是安全删除:确保删除该元素(变量、方法等),不会对程序产生编译错误的影响。

比如我要安全删除getSubList方法,按下此快捷键就会弹出如下窗口:

点击ok,若没有其它地方使用了,就删掉了;倘若检查到该方法别的地方还有使用,就会继续弹窗告知你,然后让你再做决策,防止误删:

如果你是在做一个比较重要、敏感的删除动作(比如修改线上代码分支),那么就不要怕麻烦,使用安全删除确实会更安全一些,也自然而然的会提高你的重视程度。

不过,一般来讲,使用普通删除即可,方便快捷。

✍总结

本文继续介绍了IDEA 重构相关的快捷键,结合Java强类型语言的特性,正确的使用IDEA提供的重构功能,能够控制风险,大大降低重构的“难度”呀。在我认为,一个coder需要提升,就应该“多多重构”自己的or别人的代码,这时本文的这套快捷键你值得拥有。

还是补上那句话:快捷键没有任何技巧性,练就完了!下篇继续介绍Intellij IDEA的实用快捷键。那,咱们还是下次再见!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(IDEA导航篇)
你好,我是方向盘(YourBatman)。笔者的公号是保留地,只分享原创,不转载、不发商务广告!
YourBatman
2022/03/08
1.6K0
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(IDEA导航篇)
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(代码补全篇)
本系列上篇文章介绍了IDEA里关于Run运行、Debug调试相关的快捷键,熟练后使用起来逼格更高了有木有。
YourBatman
2022/09/08
2.3K0
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(视窗、选择篇)
说到上篇文章,还要追溯到2022-02-01春节那天发的:【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(IDEA导航篇),介绍了IDEA导航相关快捷键,熟练使用后可快速定位代码位置,从而提高工作效率。
YourBatman
2022/09/02
6550
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(视窗、选择篇)
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(Git&Other&完结篇)
你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。
YourBatman
2022/09/16
7680
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(Git&Other&完结篇)
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(运行/调试篇)
本系列上篇文章介绍了IDEA里关于视窗、选择方面的快捷键,熟练掌握可以快速找到、定位到自己想要的代码。
YourBatman
2022/09/02
6790
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(运行/调试篇)
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(Live Template&Postfix Completion篇)
你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。
YourBatman
2022/09/16
7720
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(Live Template&Postfix Completion篇)
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(操作系统、终端篇)
你好,我是方向盘(YourBatman)。笔者的公号是保留地,只分享原创,不转载、不发商务广告!
YourBatman
2022/01/20
1.7K0
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(操作系统、终端篇)
【方向盘】工具提效:Sublime Text 4的常用快捷键合集
你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。
YourBatman
2022/09/16
1.6K0
【方向盘】工具提效:Sublime Text 4的常用快捷键合集
【方向盘】升级到IDEA 2022.1版本后,我把Maven Helper卸载了
你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。
YourBatman
2022/09/16
1.6K0
【方向盘】升级到IDEA 2022.1版本后,我把Maven Helper卸载了
【方向盘】超爱的IDEA提效神器Save Actions,卸载了
一切工具,都是为了提效。效率的提升一般来讲并不改变事务的本质,但足够高的效率也能引起质变,这和程序员熟悉的量变引起质变道理一样。
YourBatman
2022/09/16
1.3K0
【方向盘】超爱的IDEA提效神器Save Actions,卸载了
【方向盘】启动命令和IDEA如何传递:VM参数、命令行参数、系统参数、环境变量参数、main方法参数
你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。
YourBatman
2022/09/16
4.5K0
【方向盘】启动命令和IDEA如何传递:VM参数、命令行参数、系统参数、环境变量参数、main方法参数
IntelliJ IDEA 2022.2正式发布,支持Spring Boot 3和Spring 6
你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。
YourBatman
2022/09/20
1.6K0
IntelliJ IDEA 2022.2正式发布,支持Spring Boot 3和Spring 6
【方向盘】Spring Boot 2.7.0正式发布,弃用OkHttp 3、弃用spring.factories机制
你好,我是方向盘(YourBatman)。笔者的公号是保留地,只分享原创,不转载、不发商务广告!
YourBatman
2022/05/26
4.7K0
【方向盘】Spring Boot 2.7.0正式发布,弃用OkHttp 3、弃用spring.factories机制
【方向盘】Java EE几十种技术,“活着的”还剩几何(Web应用技术篇)
你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。
YourBatman
2022/09/19
7800
【方向盘】Java EE几十种技术,“活着的”还剩几何(Web应用技术篇)
【方向盘】Java EE几十种技术,“活着的”还剩几何(服务/安全/Java SE篇)
你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。
YourBatman
2022/09/19
7350
【方向盘】Java EE几十种技术,“活着的”还剩几何(服务/安全/Java SE篇)
【方向盘】2021年JVM生态报告:Java 11使用率超Java 8
有人说,Java不行了,Node将崛起; 有人说,Java不行了,Python将崛起; 有人说,Java不行了,Kotlin将崛起; 有人说,Java不行了,Golang将崛起;
YourBatman
2022/05/31
1.3K0
【方向盘】2021年JVM生态报告:Java 11使用率超Java 8
【方向盘】认为:开发者已无理由再用Java EE
你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。
YourBatman
2022/10/31
8290
【方向盘】认为:开发者已无理由再用Java EE
IDEA快捷键
IntelliJ IDEA 的便捷操作性,快捷键的功劳占了一大半,对于各个快捷键组合请认真对待。IntelliJ IDEA 本身的设计思维是提倡键盘优先于鼠标的,所以各种快捷键组合层出不穷,对于快捷键设置也有各种支持,对于其他 IDE 的快捷键组合也有预设模板进行支持。
IT小马哥
2020/07/15
1.3K0
IDEA和Eclipse常用快捷键
下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)
QAIU
2023/03/14
1.4K0
【方向盘】Java EE几十种技术,“活着的”还剩几何(企业应用技术篇)
你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。
YourBatman
2022/09/19
1.1K0
【方向盘】Java EE几十种技术,“活着的”还剩几何(企业应用技术篇)
推荐阅读
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(IDEA导航篇)
1.6K0
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(代码补全篇)
2.3K0
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(视窗、选择篇)
6550
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(Git&Other&完结篇)
7680
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(运行/调试篇)
6790
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(Live Template&Postfix Completion篇)
7720
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(操作系统、终端篇)
1.7K0
【方向盘】工具提效:Sublime Text 4的常用快捷键合集
1.6K0
【方向盘】升级到IDEA 2022.1版本后,我把Maven Helper卸载了
1.6K0
【方向盘】超爱的IDEA提效神器Save Actions,卸载了
1.3K0
【方向盘】启动命令和IDEA如何传递:VM参数、命令行参数、系统参数、环境变量参数、main方法参数
4.5K0
IntelliJ IDEA 2022.2正式发布,支持Spring Boot 3和Spring 6
1.6K0
【方向盘】Spring Boot 2.7.0正式发布,弃用OkHttp 3、弃用spring.factories机制
4.7K0
【方向盘】Java EE几十种技术,“活着的”还剩几何(Web应用技术篇)
7800
【方向盘】Java EE几十种技术,“活着的”还剩几何(服务/安全/Java SE篇)
7350
【方向盘】2021年JVM生态报告:Java 11使用率超Java 8
1.3K0
【方向盘】认为:开发者已无理由再用Java EE
8290
IDEA快捷键
1.3K0
IDEA和Eclipse常用快捷键
1.4K0
【方向盘】Java EE几十种技术,“活着的”还剩几何(企业应用技术篇)
1.1K0
相关推荐
【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(IDEA导航篇)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档