船新 IDEA 2020.1真香体验!Java开发首席生产力担当

就在前几天,Java软件开发神器 IDEA 2020.1 新版发布了:

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

我第一时间在机子上更新并体验了几天,感觉还是有点香的!怎么硕呢,体验完新特性之后,不由的感叹一句:IDEA现在真的是越来越智能,越来越懂开发者了。

UI/界面升级

1、界面支持中文了

汉化后的效果就是这个憨样子:

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

各花入各眼,好坏就不做评判了,可以根据自己的喜好来调节。

必须要说的是,这个中文汉化不是软件原生支持,而是需要下载安装一个名为 Chinese (Simplified) Language Pack插件,好在这个插件就是 JetBrains 官方提供的

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

2、导航栏进化

现在代码层级导航栏这里,可以直接定位到文件中的某个具体方法或者字段了,这个的确很高效

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

3、支持编辑器内的 Javadocs 渲染

以前在IDEA中阅读 Javadoc 非常不方便,因为处于原始状态的 Javadoc 中含有各种标记,不好读。这次新版的IDEA 2020新增了 Javadocs 的渲染功能,点击左边的小按钮就可以启用

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

渲染后的 Javadoc 就非常直观易读了,而且还可以调整字号

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

4、新增主题和字体

首先默认支持了 JetBrains 自家的新 JetBrains Mono 字体,这没啥可说的,之前就体验过了,详细可参考前文 《试水JetBrains官方新编程字体,真香!》

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

然后则是采用了统一的 IntelliJ Light 主题,而且该主题已经在不同的操作系统中完全统一了

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

喜不喜欢看大家个人习惯了。

5、船新的LightEdit模式

LightEdit ,顾名思义,轻量级的代码编辑。

是的,这次更新的IDEA支持打开单个代码文件进行编辑,而无需打开整个项目。文件可以在单独的编辑窗口打开,而且该窗口可以和其他(项目)窗口共存。就像这样:

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

更强大的是,直接支持快捷打开这个 单文件 所在的完整项目:

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

甚至还可以通过命令行来打开单文件,这相当可以了:

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

6、支持“禅”模式

现在的这个代码展示模式有够丰富了,支持四种了:

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

当然,禅模式是最彻底的,一开这个模式,整个世界都清净了…

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

7、终端支持分栏了

现在可以随意地将IDEA自带的终端进行横竖分栏,非常方便

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

支持直接IDEA里安装JDK和Git

很多小伙伴交流说自己JDK环境好像装的有问题,实验各种出问题。为了这个事,强迫症都快犯了,很烦。

从IntelliJ IDEA 2020.1开始,我们可以直接在创建项目时,直接从IDEA上下载并设置JDK环境,很方便了。

我特地实验了一下,在IDEA里面下载安装了个Open JDK 14,没毛病,好用,切换也很方便。

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

除此之外,IDEA还直接支持Git的安装,i了i了

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

支持Java 14新特性

前段时间Java 14发布,加入了一些新特性,这次IDEA 2020.1迅速跟进,支持了Java 14的一些新特性,举两个典型的例子。

1、 instanceof 用法增强

老的Java版本中,对于instanceof语法,我们一般都是这样用的:

private void test( Object obj ) {
    if( obj instanceof String  ) {
        String str = (String) obj;  // 需手动强制转换!
        System.out.println( str.isEmpty() );
    }
}

而Java 14对 instanceof 用法做了增强,我们借助全新的 IDEA 2020 ,可以快捷的将上面的代码自动重构成如下所示:

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

所以最终变成了这个亚子:

private void test( Object obj ) {
    if( obj instanceof String str ) { // 校验通过,直接后面定义变量,无需强转!
        System.out.println( str.isEmpty() );
    }
}

2、 record 新语法支持

Java 14新增了 record 新语法, record 的词面意思就是 “记录” ,主要用于形式化的固定记录,这在以前主要就是通过 不可变类 来实现的,举个例子吧。

比如我们定义一个不可变的日志记录类 LogRecord ,里面包含日志ID( id ),日志时间( date ),日志详情( detail ),按照老的做法,只能使用 class 进行定义:

public final class LogRecord { // 不可变类

    private final int id;
    private final LocalDate date;
    private final String detail;

    public LogRecord(int id, LocalDate date, String detail) {
        this.id = id;
        this.date = date;
        this.detail = detail;
    }


    public int getId() {
        return id;
    }

    public LocalDate getDate() {
        return date;
    }

    public String getDetail() {
        return detail;
    }

    @Override
    public String toString() {
        return "LogRecord{" +
                "id=" + id +
                ", date=" + date +
                ", detail='" + detail + '/'' +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        LogRecord logRecord = (LogRecord) o;
        return id == logRecord.id &&
                Objects.equals(date, logRecord.date) &&
                Objects.equals(detail, logRecord.detail);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, date, detail);
    }
    
}

Java 14认为上面这种 final 类型 class 的定义的套路是完全固定的,写了很多固定套路的代码,包括:构造函数、 Getter 方法、 toString() 方法、 hashCode()equals() 方法等等,十分无聊。

为此Java 14推出了全新的 record 语法,只需一行代码即可搞定,十分方便:

record LogRecord( int id, LocalDate date, String detail ) {
    
}

这次IDEA 2020中就已经完全支持 recod 语法了,并且还可以自动显式地为 record 生成各种方法:

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

支持更加智能的检查和重构

1、支持就地更改方法签名

什么意思呢?举个例子。

当你想直接修改某个已有方法的参数时,不管三七二十一,上来可以直接修改方法签名,然后点击更新,接下来的所有步骤IDEA可以帮你完成。

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

2、智能分析日期字符串格式

比如这个例子中,我格式化一个日期时,无意将年月日 yyyy/MM/dd 字符串写成了 yyyy/mm/dd ,中间的 MM 大小写忘了,IDEA自动给我们分析出来了:

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

3、智能语法和拼写检查器

这个功能得配合 Grazie 这个插件一起使用,该插件是一个全面的语法、拼写、以及样式检查工具。

比如,这地方我小手一抖,写错了英语语法,它立马帮我们提示出来了

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

增强调试功能

1、数据流分析辅助,可以直接预测下面的运行结果

IDEA 2020.1直接将数据流分析添加到JVM调试器。当程序在断点处停止时,IDEA可以根据程序的当前状态运行数据流分析,来预测下一步将要发生什么。

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

2、调试时,支持固定对象字段

当一个对象字段过多,以致于调试时很难找到需要的字段时,我们可以直接将其置顶,便于查看。

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

3、以文件形式存储运行配置

新版IDEA支持直接将当前的调试/运行的配置存档,并在以后选择重新加载

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

更加先进的版本控制

第一个大的改进就是重新设计了代码提交的窗口,而不再是以前老的那种模态化弹窗式窗口了。这样一来,提交代码时的代码比对,编辑会更加舒适。

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

第二个改进就是支持 搜索刷新 本地以及远端的代码分支:

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

另外,这个历史日志留痕也是蛮好看的:

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

Maven和Gradle导入更新

此处就以Maven工具为例,编辑器右上角出现的是一个浮动通知。修改构建文件后,可以使用这个迷你的通知图标来加载更改。

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

数据库处理增强

新版IDEA内置的数据库管理,现在可以支持将数据导出到 Excel(.xlsx) 文件,并且直接在编辑器中以文本形式查看

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

增强的HTTP Client

升级之后的 HTTP Client 更加智能,典型的比如:支持自动匹配和补全

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

而且还可以在 Contoller 代码的左侧,通过快捷的方式来自动生成HTTP请求文件

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

而且对于Spring项目,还可以在底部的 Endpoints 窗口里来快捷生成HTTP请求文件。

船新 IDEA 2020.1真香体验!Java开发首席生产力担当

其他改进

1、对各种框架的支持改进,比如: Spring WebFlux/Selenium/JMS/Micronaut/RxJava 等等

2、对 Docker/Kubernetes 的支持改进

3、对 Scala 3 的支持

4、对 Android Volley 的支持

5、对 JavaScript 的改进和支持

小结

体验一番之后发现,新版的IDEA 2020.1肉眼可见的改进还是非常多的,挺香。

不过还有一个实际的问题就是:我一升级之后发现 一大票 的插件都不能用了,所以周边支持的兼容性还得再等等。

原文 

https://segmentfault.com/a/1190000022376903

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 船新 IDEA 2020.1真香体验!Java开发首席生产力担当

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址