前言
各位小伙伴大家好,我是A哥。IDEA上个较大版本的发布,要追溯到4月份了:
时隔近4个月,北京时间2020-07-28深夜,IntelliJ IDEA再迎更新,这是2020年的第二个里程碑版本。
之前提到过,2020年是Jetbrain公司的20周年(小伙子长成大男孩了),有理由相信官方会立些Flag。所以自从官方在2020-01-20发布了其2020年的Roadmap后,我个人是有保持持续关注的,毕竟一方面是公司20周年,另一方面是21世纪的“新10年”,这么好的契机很适合搞事情。
上个版本(2020.1)发布后,带来了众多实用新特性,比如:中文支持、禅模式、Javadoc渲染等等,某些新功能可以显著提高效率,因此反响是一片叫好。无独有偶,作为2020年的第二个里程碑版本,它能给我们带来什么样的期许呢?
正文
按照惯例,来一张最新版IDEA启动图尝尝鲜:
我把2020.1版本启动图也扔在这供你对比,哪个更好看?
what’s new(新特性)
IntelliJ IDEA 2020.2做的改进重点体现在完全控制GitHub请求,包括在IDE中审查、合并 GitHub PR等。同时还提供了对Java15、Jakarta EE 9的支持,还包括Quarkus、microaut等等。
1、支持Java 15
尽管Java 15将在9月发布,IntelliJ IDEA 2020.2已经提前为此做好了准备,反应不可为不灵活,给个大大的赞👍。
说明:Java 15新特性啥的本文不提,毕竟这不是本文关注点所在
题外话:从JDK9之后,Oracle采用了新的发布周期:每6个月发布一个版本,每3年发布一个LTS版本。JDK15是继JDK9之后发布的第七个版本, 该版本依旧为非LTS版本,最新的LTS版本为JDK11(JDK17还未发布)。
2、相关问题内嵌提示
这个功能非常好用,特别对有些不使用RENAME功能的小伙伴来说是福音。
如果您通过更改具有外部使用的类、方法或字段的签名而引入了编译错误,IDE将用镶嵌提示通知您。单击相关嵌入提示,IDE将自动帮你打开Find工具窗口,列出了在外部文件中发生的所有相关问题。
看完这段话是不是还有点蒙,来吧,A哥给你准备了示例:
Person.java文件:
public class Person { public String eat(String food) { return "SUCCESS"; } }
Demo.java文件:
public class Demo { public static void main(String[] args) { new Person().eat("大鱼"); new Person().eat("大肉"); } }
这时编译肯定一切正常。现在我做出改变:更改Person类的eat()方法名为eatDish(),结果如下图:
鼠标单击提示,自动帮你打开Find框且定位到问题所在:
就问你,这个功能爽不爽,实用不实用?
小贴士:在同一个.java文件内(即使是不同class),是不会类似提示的哦
3、运行时异常原因分析
一听这个功能名称,就觉得很厉害。快速定位问题一直是程序员的痛点,现在让工具来辅助你完成,效率更上一层楼。
新版IDEA为异常堆栈跟踪分析添加了数据流分析。点击堆栈跟踪时,IDE 可能会将您带到代码中出现异常的确切位置,并提供建议来帮助您了解发生此错误的原因。
下面用一个NPE异常作为示例感受一把,代码如下:
public static void main(String[] args) { Integer i = null; System.out.println(i.toString()); }
运行程序,抛出异常,控制台显示:
如红框所示,IDEA给出的建议是让我们创建一个断点,单击此“按钮”即弹出断点创建对话框:
不得不说,真的是方便了很多。
附:老版本中效果截图,用以对比:
4、更好Stream API自动补全
Stream API在开发中太太太常用了,因此哪怕只是更智能一丁点的,带来的效率提升都可谓是大大的。
可以直接在集合或数组中直接输入Stream API方法名,IDEA 会自动插入 stream()。这适用于任何流操作(map、reduce、collect等所有操作都行)。
话外音:以后你就不用自己的手动的多写一步stream()了,开不开森
话不多说,来个栗子:
附:老版本中效果截图,用以对比:很明显根本就不支持嘛
5、Live Templates新增Java分组
相信这是很多小伙伴一直以来的一个痛点,毕竟咱们都是Java程序员,使用Live Templates几乎100%都是针对于Java代码的,然后老版本竟然还没有个Java分组,实在难受,我还记得我刚开始使用IDEA时就默默吐槽了这点。
现在好了,这个版本终于补上喽:
小贴士:你之前放在自定义分组里的还在那,不会给你自动挪过来的
附:老版本中效果截图,用以对比:JavaScript分组都有竟然没有Java分组,服气
特别强调:此窗口是新增的,老版本并无此能力,也并无此窗口。所以,升吗?🙂
6、新增Problems窗口
此版本新增了一个Problems窗口,简直不要太赞。
显示与当前文件有关的警告和错误以及问题描述。在此工具窗口中,可以右键点击问题导航到遇到问题的代码行,方便你逐个修复。
另外,它在文件右上角还有问题总数、上/下导航按钮,可谓非常贴心: