IDEA 你不知道小技巧——后缀法自动生成代码(Postfix Completion)

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

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

首先我们准备一个工程 demo01:

项目结构如图,其中 User 就是一个普通的实体类。


下面编写代码,分类介绍:

一、变量创建

首先是变量创建的快捷方式:

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

OK 掌握了方法之后下面我们直接介绍其它的后缀表达式:

// 创建局部变量 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();

另外我们常用的类型强转可以使用 .cast替代,会使我们写代码的速度提高很多。

二、类型判断

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

.null 直接生成这个:

// user.null
if (user == null) {

}

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

// user.notnull
// user.nn
if (user != null) {
            
}

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

Boolean flag = true;

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

// flag.if
if (flag) {
            
}

// flag.while
while (flag) {
            
}

三、输出和返回

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

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

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

// flag.return
return flag;

四、循环

先定义一个数组:

String[] users = new String[5];

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

// users.fori
for (int i = 0; i < users.length; i++) {
            
}

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

// users.for
for (String s : users) {
            
}

还有.forr 表示逆向遍历:

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

五、异常

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

// main().try
try {
     main();
} catch (Exception e) {
     e.printStackTrace();
}

六、自定义

在设置里面找到下图位置:

可以看到之前介绍的所有的模板都在这里声明了,如果你想修改或者自定义添加都可以在这里完成。


这些功能如果你没用过可能刚开始会比较笨拙,所以自己平时可以多用一用,熟练了真的提高不少效率。

另外 IDEA 还有非常多的功能,感兴趣的小伙伴可以参考官方文档学习一下。

全部评论

相关推荐

no_work_no_life:深圳,充电宝,盲猜anker
点赞 评论 收藏
分享
小厂面经,也是我的处女面(30min)1.自我介绍2.spring&nbsp;boot的自动装配原理(好多类和接口的单词都忘了全称是啥了,就说了记得的单词,流程应该说对了吧)3.有用过redis吗?主要是用在实现什么功能(说了技术派用redis的zset来实现排行榜)5.有了解过Redisson吗?讲一下对于分布式锁的了解以及在什么场景下应用(说了秒杀场景)6.对mysql有了解吗?包括它的索引优化和创建(把想起来的全说了)7.了解设计模式吗?比如单例模式,为什么要使用单例模式,它的优点是什么(昨天刚看的设计模式)8.工厂模式有了解吗?主要的使用场景是?(也是昨天刚看的)9.场景题:有7个服务器,需要在早上十点定时的向数据库中的用户表中的用户发短信,如果做到发送的消息不重复,且如果发送失败了需要知道是到哪个用户失败了,这样下次就直接从这个用户开始(我答了用spring&nbsp;task来实现定时,用分布式锁来保证只有一份服务器可以发送消息,用消息队列来存储消息,然后用消息确认机制来保证错误信息的记录,以及在数据库或者业务层面完成消息消费的幂等性)10.场景题:如果在系统启动的时间就将数据库的所有用户相关的信息都读到一个hashmap中(这个没啥思路,没答好)27届的投了一个星期终于有一个面试了,大部分公司都只招26的
inari233:已oc,拒了
查看9道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务