IDEA中Live Templates和Postfix Completion的用法

前言

IDEA中代码生成的方式有两种

  • Live Templates
  • Postfix Completion

这两种方式中,第一种基本每一个IDE都支持,但是支持第二中的很少。

Live Templates

输出模板

1、sout,最基本的输出语句,快速生成 System.out.println();

2、soutp,快速生成参数输出语句。

3、soutm,快速生成方法名输出语句。

4、soutv,快速生成最近一个变量的输出语句。

循环模板

1、fori ,可以快速生成最基本的 for 循环:

img

2、iter,可以快速生成增强for循环:

img

条件模板

1、ifn,快速生成空值判断:

img

2、inn

img

常量模板

psf 用于生成 public static final,prsf 用于生成 private static final:

(另外也有 psfs 直接生成 public static final String,和 psfi 直接生成 public static final int)

img

Postfix Completion

Postfix Completion 是 IDEA 中的后缀表示法,什么意思呢?

其实就是你在书写完一段语句之后再加上一个.然后输入指定的字符回车,IDEA 就会自动帮你生成代码。

变量创建

在变量后面输入 .var 然后回车即可快速创建一个局部变量。

我们常用的类型强转可以使用 .cast替代。

1
2
3
4
5
6
7
8
9
10
// 创建局部变量 User().var
User user = new User();
// 创建全局变量 User().field
Main.user = new User();
// 创建对象 User.new
new User();
// 类型强转 Object().cast
(User) new Object();
// 类型强转 + 变量创建 Object().castvar
User user2 = (User) new Object();

类型判断

首先介绍判断是否为空的:

.null 直接生成这个:

1
2
3
// user.null
if (user == null) {
}

.notnull 等价于 .nn生成这个:

1
2
3
4
5
// user.notnull
// user.nn
if (user != null) {

}

另外如果变量是布尔类型的:

1
Boolean flag = true;

可以使用 .if.while快速生成:

1
2
3
4
5
6
7
8
9
// flag.if
if (flag) {

}

// flag.while
while (flag) {

}

输出和返回

如果我想输出一个变量,使用.sout

1
2
// flag.sout
System.out.println(flag);

我想设置方法的返回值,使用.return

1
2
// flag.return
return flag;

循环

先定义一个数组:

1
String[] users = new String[5];

如果我想使用 for 循环遍历它,使用.fori

1
2
3
4
// users.fori
for (int i = 0; i < users.length; i++) {

}

同样的道理,增强 for 循环可以使用 .for

1
2
3
4
// users.for
for (String s : users) {

}

循环可以使用.iter来遍历,效果同.for

还有.forr 表示逆向遍历:

1
2
3
4
// users.forr
for (int i = users.length - 1; i >= 0; i--) {

}

异常

捕捉异常,相信你已经猜到了,对就是try,都是语义化的:

1
2
3
4
5
6
// test().try
try {
test();
} catch (Exception e) {
e.printStackTrace();
}

自定义

Settings => Editor => General => Postfix Completion