Java武学秘籍IDEA 2020.1 真香体验,太牛了( 二 )


Java武学秘籍IDEA 2020.1 真香体验,太牛了
本文插图
当然 , 禅模式是最彻底的 , 一开这个模式 , 整个世界都清净了...
Java武学秘籍IDEA 2020.1 真香体验,太牛了
本文插图
7、终端支持分栏了
现在可以随意地将IDEA自带的终端进行横竖分栏 , 非常方便
Java武学秘籍IDEA 2020.1 真香体验,太牛了
本文插图
支持直接IDEA里安装JDK和Git
很多小伙伴交流说自己JDK环境好像装的有问题 , 实验各种出问题 。 为了这个事 , 强迫症都快犯了 , 很烦 。
从IntelliJ IDEA 2020.1开始 , 我们可以直接在创建项目时 , 直接从IDEA上下载并设置JDK环境 , 很方便了 。
我特地实验了一下 , 在IDEA里面下载安装了个Open JDK 14 , 没毛病 , 好用 , 切换也很方便 。
Java武学秘籍IDEA 2020.1 真香体验,太牛了
本文插图
Java武学秘籍IDEA 2020.1 真香体验,太牛了
本文插图
除此之外 , IDEA还直接支持Git的安装 , i了i了
Java武学秘籍IDEA 2020.1 真香体验,太牛了
本文插图
支持Java 14新特性
前段时间Java 14发布 , 加入了一些新特性 , 这次IDEA 2020.1迅速跟进 , 支持了Java 14的一些新特性 , 举两个典型的例子 。
1、instanceof用法增强
老的Java版本中 , 对于instanceof语法 , 我们一般都是这样用的:privatevoidtest(Objectobj){if(objinstanceofString){Stringstr=(String)obj;//需手动强制转换!System.out.println(str.isEmpty());}}
而Java 14对instanceof用法做了增强 , 我们借助全新的IDEA 2020 , 可以快捷的将上面的代码自动重构成如下所示:
Java武学秘籍IDEA 2020.1 真香体验,太牛了
本文插图
所以最终变成了这个亚子:privatevoidtest(Objectobj){if(objinstanceofStringstr){//校验通过 , 直接后面定义变量 , 无需强转!System.out.println(str.isEmpty());}}
2、record新语法支持
Java 14新增了record新语法 , record的词面意思就是 “记录” , 主要用于形式化的固定记录 , 这在以前主要就是通过 不可变类来实现的 , 举个例子吧 。
比如我们定义一个不可变的日志记录类LogRecord , 里面包含日志ID(id) , 日志时间(date) , 日志详情(detail) , 按照老的做法 , 只能使用class进行定义:publicfinalclassLogRecord{//不可变类privatefinalintid;privatefinalLocalDatedate;privatefinalStringdetail;publicLogRecord(intid,LocalDatedate,Stringdetail){this.id=id;this.date=date;this.detail=detail;}publicintgetId(){returnid;}publicLocalDategetDate(){returndate;}publicStringgetDetail(){returndetail;}@OverridepublicStringtoString(){return"LogRecord{"+"id="+id+",date="+date+",detail='"+detail+'\''+'}';}@Overridepublicbooleanequals(Objecto){if(this==o)returntrue;if(o==null||getClass()!=o.getClass())returnfalse;LogRecordlogRecord=(LogRecord)o;returnid==logRecord.id&&Objects.equals(date,logRecord.date)&&Objects.equals(detail,logRecord.detail);}@OverridepublicinthashCode(){returnObjects.hash(id,date,detail);}}
Java 14认为上面这种final类型class的定义的套路是完全固定的 , 写了很多固定套路的代码 , 包括:构造函数、Getter方法、toString()方法、hashCode() 和 equals()方法等等 , 十分无聊 。


推荐阅读