前言

本篇介绍的技巧为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)的更多相关文章

  1. 使用IntelliJ IDEA的小技巧快乐编程(1)

    前言 我很喜欢和别人讨论一些问题,有时候,在公司里,讨论这样的问题需要演示代码.常常会碰到的一种情况是(根据我的记忆这半年多来至少超过了10次),别人会打断你的演示,抛出一个问题:等等,你刚才的操作是 ...

  2. 学会这些 pycharm 编程小技巧,编程效率提升 10 倍

    PyCharm 是一款非常强大的编写 python 代码的工具.掌握一些小技巧能成倍的提升写代码的效率,本篇介绍几个经常使用的小技巧. 一.分屏展示 当你想同时看到多个文件的时候: 1.右击标签页: ...

  3. IntelliJ IDEA使用小技巧

    1:设置类,接口,枚举注解模板 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NA ...

  4. Intellij IDEA神器那些让人爱不释手的小技巧

      完整的IDEA使用教程,GitHub地址: https://github.com/judasn/IntelliJ-IDEA-Tutorial 概述 之前写了一篇介绍IntellIJ IDEA的文章 ...

  5. IDEA Intellij中vim插件使用小技巧

    在 IDEA Intellij小技巧和插件 一文中简单介绍了一下IdeaVim插件.在这里详细总结一下这个插件在日常编程中的一些常用小技巧.供有兴趣使用这个插件,但对Vim还不十分熟悉的朋友参考.当然 ...

  6. Shellcode编程小技巧

    工作需要,需要注入其他程序监控一些东西,检测到的数据通过WM_COPY 消息发送给显示窗体.(大体是这样的还没定稿) ##1 选择一个框架 ## tombkeeper/Shellcode_Templa ...

  7. Intellij IDEA神器居然还有这些小技巧

    概述 Intellij IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜.出于对Intellij IDEA的喜爱,我决定写一个与其相关的专栏或者系列,把一些好用的Intel ...

  8. Intellij IDEA神器值得收藏的小技巧

    概述 Intellij IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜.出于对Intellij IDEA的喜爱,我决定写一个与其相关的专栏或者系列,把一些好用的Intel ...

  9. Intellij IDEA神器居然还有这些小技巧---超级好用的

    Intellij IDEA神器居然还有这些小技巧----https://my.oschina.net/samgege/blog/1808622?p=8

随机推荐

  1. Android 9Patch图片的使用-android学习之旅(十八)

    9patch的使用方法 9patch图片常被用来做消息发送等的图片,只是缩放照片的部分区域,使得图片的整体形状不会受到影响,比较方便. 下面我们介绍一下: 在android的SDK安装目录下的tool ...

  2. JDK 7中的文件操作的新特性

    文件系统综述 一个文件系统在某种媒介(通常是一个或多个硬盘)上存储和组织文件.如今的大多数文件系统都是以树状结构来存储文件.在树的顶端是一个或多个根节点,在根节点一下,是文件和目录(在Windows系 ...

  3. Android开发学习之路--Activity之Intent

    窗外再次飘起了小雪,还有1周就过年了,2016年即将到来,来年不知道自己将身处何处,船到桥头自然直吧.还是继续学习吧,上次学习了Activity,那么如果是两个Activity之间,怎么从一个Acti ...

  4. Android初级教程启动定时器详解

    本案例知识是:后台执行定时任务. Alarm机制: 一.创建LongRunningService类 package com.example.servicebestpractice; import ja ...

  5. Android的ProgressBar进度条-android学习之旅(三十一)

    ProgressBar 简介 ProgressBar是一种很常用的Ui,用于给复杂的操作显示进度,提供更好的用户相应.使用setProgress()incrementProgressBy()来设置进度 ...

  6. 【一天一道LeetCode】#345. Reverse Vowels of a String

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Write a ...

  7. Dynamics CRM Microsoft SQL Server 指定的数据库具有更高的版本

    在做NLB部署时遇到这么个问题,CRMAPP1安装的CRM版本是6.1已经打了SP1补丁,而在CRMAPP2上的CRM安装包是6.0版本,在选择连接现有部署后,最后一步检测就出了问题,如下图所示. 看 ...

  8. Objective-C实现常用的4种排序算法

    OC实现的4种排序又来了! 4种排序分别是:快速排序.冒泡排序.选择排序.插入排序,其他的我就不写了,因为OC里的数组中不能存放基本数据类型,如int不能存放,只能放对象,所以所有的数据我用了NSNu ...

  9. 动态游标(例如表名作为参数)以及动态SQL分析

    表名作为参数的动态游标 DECLARE v_table_name VARCHAR2(30) := 'CUX_MES_WIP_BARCODE_MAP'; --l_rec SYS_REFCURSOR; T ...

  10. Cocos2D旋转炮塔到指定角度(二)

    增加如下代码到ccTouchesEnded方法中,就在你在导弹精灵上调用runAction之前: // Determine angle to face float angleRadians = ata ...