使用IntelliJ IDEA的小技巧快乐编程(2)
前言
本篇介绍的技巧为IntelliJ IDEA
中自动代码生成相关的技巧,合理的使用这些技巧将大大提高的你的编码效率 :)
Trick 6. 使用模板代码
idea默认的提供了许多模板代码,你可以使用ctrl + j
来进行查看,或者使用T1.命令查找 insert Live Template
,或者使用T3.设置你自己喜欢的快捷键
左边的是模板代码触发键,使用tab即可触发,如图
内置的模板代码看似很多,其实大部分都不会用到,比较常用的一些如下
触发词 | 含义 |
---|---|
psvm | main 方法 |
sout | System.out.println() |
souf | System.out.printf() |
fori | 创建一个正循环 |
ifn | 创建一个if(something == null)的代码块 |
fixme | 在光标处增加fix标记 |
todo | 在光标处增加todo标记 |
Trick 7. 自定义模板代码
系统提供的模板代码代码固然不错,但其实还是不够用,没关系,IntelliJ IDEA 支持自定义模板代码。
使用T1.命令搜索Live templates
进入编辑页面,具体编辑细节如下图
利用自定义模板的技巧你就可以自己定义自己常用的代码块了,例如下图自定义了一个打印出map里键值对的代码块,将自己经常写到的代码进行模板化整理,可以有效提升自己的编码效率 :)
Trick 8. 使用后缀表达式生成代码
不知道大家平时有没有遇到这样的情况,例如你正在编写一段链式的代码或者变量,写着写着这时候发现这个变量要进行打印/空值判断/各类对变量的操作,这时候会怎么做呢?将这样一段的链式代码选中剪切,然后sout
,再接着粘贴?这样的操作很显然是令人不愉快的,同时也不符合正常人的思维,试想这时候如果我直接.sout
该多好啊!是的,这时候你确实该这么做,这就是idea的后缀表达式。
如上图所示,虽然上图的代码没有什么意义,编译也没法通过(事实上就是我乱写的),可这一连串的包装操作极其流畅,都是通过后缀表达式来完成的,再也没有复制粘贴了:) 显然这样的编码方式是让人感觉十分愉悦的。
Trick 9. 自定义后缀表达式
和T7.类似,我们也可以定义自己的后缀表达式,使用T1.命令搜索postfix completion
即可进入自定义后缀表达式的设置(该功能为idea 2018.1以及之后的版本才提供),设置界面如图所示
例如上图中的示例,我设置了一个对象转json字符串的后缀表达式,适用类型为所有类型,触发关键字是.json
,这样每次想要转成json字符串的时候就方便许多。如图
上面提到这项功能是idea2018.1后的版本集成进来的,如果你的版本低于这个版本也想要这个功能,可以使用T2.搜索插件Custom postfix Templates
或者点击这里是github的链接,进行下载,下载之后t1.命令搜索 custom postfix 就可以进入设置页面,具体编辑方法的可以查看github链接中的readme
,和上文idea集成进来的大同小异。
10. 利用alt+insert插入代码
在T1.命令搜索中搜索Generate
或者在页面中按下默认快捷键alt+insert
可以自动的生成一些代码,包括常见的getset
构造器
hascode & equals
spring自动注入
版权信息
等等
另外值得一提的,这样的自动生成代码同样支持自定义一些模板(使用velocity
dsl进行编写),例如链式调用的setter方法,不同风格的toString&equals&hashcode
方法,但是因为运用的情况并不多,这里就简而略过,有兴趣的同学可以自行搜索。
使用IntelliJ IDEA的小技巧快乐编程(2)的更多相关文章
- 使用IntelliJ IDEA的小技巧快乐编程(1)
前言 我很喜欢和别人讨论一些问题,有时候,在公司里,讨论这样的问题需要演示代码.常常会碰到的一种情况是(根据我的记忆这半年多来至少超过了10次),别人会打断你的演示,抛出一个问题:等等,你刚才的操作是 ...
- 学会这些 pycharm 编程小技巧,编程效率提升 10 倍
PyCharm 是一款非常强大的编写 python 代码的工具.掌握一些小技巧能成倍的提升写代码的效率,本篇介绍几个经常使用的小技巧. 一.分屏展示 当你想同时看到多个文件的时候: 1.右击标签页: ...
- IntelliJ IDEA使用小技巧
1:设置类,接口,枚举注解模板 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NA ...
- Intellij IDEA神器那些让人爱不释手的小技巧
完整的IDEA使用教程,GitHub地址: https://github.com/judasn/IntelliJ-IDEA-Tutorial 概述 之前写了一篇介绍IntellIJ IDEA的文章 ...
- IDEA Intellij中vim插件使用小技巧
在 IDEA Intellij小技巧和插件 一文中简单介绍了一下IdeaVim插件.在这里详细总结一下这个插件在日常编程中的一些常用小技巧.供有兴趣使用这个插件,但对Vim还不十分熟悉的朋友参考.当然 ...
- Shellcode编程小技巧
工作需要,需要注入其他程序监控一些东西,检测到的数据通过WM_COPY 消息发送给显示窗体.(大体是这样的还没定稿) ##1 选择一个框架 ## tombkeeper/Shellcode_Templa ...
- Intellij IDEA神器居然还有这些小技巧
概述 Intellij IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜.出于对Intellij IDEA的喜爱,我决定写一个与其相关的专栏或者系列,把一些好用的Intel ...
- Intellij IDEA神器值得收藏的小技巧
概述 Intellij IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜.出于对Intellij IDEA的喜爱,我决定写一个与其相关的专栏或者系列,把一些好用的Intel ...
- Intellij IDEA神器居然还有这些小技巧---超级好用的
Intellij IDEA神器居然还有这些小技巧----https://my.oschina.net/samgege/blog/1808622?p=8
随机推荐
- 安装解压版本的MySQL,安装过程中的常见命令,检查windows系统错误日志的方式来检查MySQL启动错误,关于Fatal error: Can't open and lock privilege
以端口 port = 3306 # 设置mysql的安装目录 basedir=D://Installed//mysql-5.6.26-winx64//mysql-5.6.26-winx64 # ...
- Android 5.1 添加硬件抽象层(HAL)和JNI接口总结
点击打开链接
- UNIX网络编程——使用select函数的TCP和UDP回射服务器程序
服务器程序: #include <sys/wait.h> #include <string.h> #include <string.h> #include < ...
- oracle对大对象类型操作:blob,clob,nclob
1.基本介绍 Oracle和plsql都支持lob(large object) 类型,用来存储大数量数据,如图像文件,声音文件等.Oracle 9i realse2支持存储最大为4g的数据,or ...
- Java与C之间的socket通信
最近正在开发一个基于指纹的音乐检索应用,算法部分已经完成,所以尝试做一个Android App.Android与服务器通信通常采用HTTP通信方式和Socket通信方式.由于对web服务器编程了解较少 ...
- iOS开发xcode报错:"xxxxxx"has been modified since the precompiled header was built
最近做iOS开发,老是遇到这种问题,正好我有两个版本的Xcode,换了另一个,就正常了,所以也一直没解决. 今天又遇到这个问题,就查了一下资料,找到了解决办法,在次记录一下方便查找,就是在Xcode中 ...
- EBS预置文件作用收集整理
在EBS之中,有很多的配置选项(profile),系统管理员只需要对它们做一些简单的配置,就可以达到控制流程开关.安全访问.个人喜好等等方面的要求. 以HR: Security Profile为例,该 ...
- Activity, Service,Task, Process and Thread之间的关系
Activity, Service,Task, Process and Thread之间到底是什么关系呢? 首先我们来看下Task的定义,Google是这样定义Task的:a task is what ...
- 《java入门第一季》之泛型引入
泛型的引入: 首先看一段代码体会自动报错. // 看下面这个代码 自动报错 String[] strArray = new String[3]; strArray[0] = "hello&q ...
- 《java入门第一季》之Date类案例,算一算你的恋爱纪念日
想算你和你对象谈了多久了,还在用笔算吗,是不是很头疼?写个程序算一算吧!会变得如此简单. import java.text.ParseException; import java.text.Simpl ...