使用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自动注入 版权信息 等等

另外值得一提的,这样的自动生成代码同样支持自定义一些模板(使用velocitydsl进行编写),例如链式调用的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
随机推荐
- 剑指Offer——网易笔试之不要二——欧式距离的典型应用
剑指Offer--网易笔试之不要二--欧式距离的典型应用 前言 欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的 ...
- 插件前奏-android黑科技 hook介绍
转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52091833 Android hook相关学习 参考:http://www.cydia ...
- ROC曲线的AUC(以及其他评价指标的简介)知识整理
相关评价指标在这片文章里有很好介绍 信息检索(IR)的评价指标介绍 - 准确率.召回率.F1.mAP.ROC.AUC:http://blog.csdn.net/marising/article/det ...
- 深入Java关键字instanceof
深入Java关键字instanceof instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口.抽象类.父类)的实例. 举个例子: public interface ...
- HttpClient 解决中文乱码
public static String httpGet(String url) { try { HttpGet httpGet = new HttpGet(url); HttpClient clie ...
- 导航控制器 UI_08(上)
主要内容:UINavigationController 重要:属性传值(向后一个界面传值).代理传值(向前相邻的界面传值).单例传值(不相邻的界面向前传值) 1.UINavigationControl ...
- 4.4、Libgdx使用方法查询运行环境相关属性
(原文:http://www.libgdx.cn/topic/46/4-4-libgdx%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%E6%9F%A5%E8%AF%A2%E ...
- python的IndentationError: unexpected indent python
都知道python是对格式要求很严格的,写了一些python但是也没发现他严格在哪里,今天遇到了IndentationError: unexpected indent错误我才知道他是多么的严格. ...
- 打包volley
1.如果电脑没有安装git和ant的话,需要安装git和ant,直接Google就可以,并配置环境变量 2.在命令行执行 git clone https://android.googlesource. ...
- Unity3D学习笔记(五)C#与JavaScript组件访问的比较
由于之前用JavaScript用的比较多,因此总是想用以前的方法来访问组件,却屡遭失败,经过查阅资料发现,二者存在较大的不同. 下面以调用3D Text组件HurtValue为例,来比较二者的不同 J ...