合格的程序员都善于使用工具,正所谓君子性非异也,善假于物也。程序员
使用自动化工具能够减小本身的工做量,提升工做效率。平常编程过程当中,咱们常常须要编写重复的代码片断,好比说编程
private static final Logger LOGGER = LoggerFactory.getLogger(HashServiceImpl.class);
复制代码
每次编写时都要键入不少键,有什么方法能够快速生成这段代码呢?相似的,如何保存格式固定的经常使用代码片断,而后在须要时快速生成呢。IDEA 的 Live Template 是一个可行的途径。bash
我也是最近才逐渐使用 IDEA 的 Live Template 功能,以前虽然知道这个功能,可是没有养成使用的习惯。最近一段时间在不断审视并反思本身的编程、工做和生活习惯,才发现其中有不少能够优化精进的地方。微信
这也是《程序员修炼之道》中所说的 Think ! About Your Work 。函数
IDEA 是一个很强大的编程工具,学会使用它可以极大的提升工做效率,将精力投入到更关键的事情上,而不是将时间浪费在编写重复代码上面。工具
而做为 Java 程序员,使人苦恼的地方是 Java 开发过程当中常常须要编写有固定格式的代码,例如说声明一个私有变量,Logger 或者 Bean 等等。对于这种小范围的代码生成,咱们能够利用 IDEA 提供的 Live Templates 功能。优化
Live Template 并非简单的 Code Snippet,它甚至支持 Groovy函数配置,能够编写一些复杂的逻辑,支持很复杂的代码生成。编码
IDEA 自带不少经常使用的动态模板,都是你们日常编码时的经常使用语句格式。好比说下面四张动图中的语句。spa
四张图分别是 声明静态 String 类型成员变量,判断字符串为空,for 循环和打印函数参数。.net
打开配置页面,进入 Live Template 选项卡,咱们能够看到 IDEA 预先设置的模板配置。这些模板都是最经常使用的一些语句,咱们先来看一下它们都是如何定义的。
缩写就是 IDEA 识别的模板的别名,就像文章开头展现的当你键入 soutm
时,IDEA 就会自动识别为该模板。
而应用上下文则表示该模板在什么上下文中生效。好比说上文中时一个 System.out
的语句,它只应该在 Java 的函数体中有效,因此它的应用上下文设置为 Java: statement
,在其余类型文件或者 Java 文件的成员变量声明位置都没法使用该模板。
模板内容就是你按下 Tab 键以后,IDEA 自动生成的内容,它通常包含两个部分,纯文本和参数。参数能够进行值绑定,还支持光标的自动跳转。如同上文所示,$CLASS_NAME$
和 $METHOD_NAME$
就是参数,而$END$
是一个特殊的参数,它表示光标最后一个跳转的位置。
而参数设置就是设置这些参数的值,可使用 IDEA 提供的一些内置函数,还可使用强大的 Groovy 脚本。去 IDEA 的官网能够查看这些函数的具体做用。
咱们这里讲解一下 groovyScript("groovy code", arg1)
的使用。它能提供一切你想要的能力,它支持执行 Groovy 脚本处理输入,而后输出处理后的字符串
groovyScript("code", ...)
| code | 一段Groovy代码或者Groovy脚本代码绝对路径 |
| ... | 可选入参,这些参数会绑定到`_1, _2, _3, ..._n`, 在 Groovy 代码中使用。|
复制代码
好比以前打印函数参数的模板是这样定义的。
groovyScript("'\"' + _1.collect { it + ' = [\" + ' + it + ' + \"]'}.join(', ') + '\"'", methodParameters())
复制代码
methodParameters
是 IDEA 内置的函数,它返回的结果做为参数输入到 Groovy 的脚本中,生成打印参数函数的字符串。
感谢你们的阅读,但愿你们继续关注,也能够留言分享你最喜欢使用的编程工具和编程小技巧。