JetBrains 发布 IntelliJ IDEA 2021.1

JetBrains 发布 IntelliJ IDEA 2021.1

JetBrains已经发布IntelliJ IDEA 2021.1,其特点是支持Java 16,一个新的预览功能可以即时渲染HTML变化,并支持Windows Subsystem for Linux(WSL)2。还可以在Docker、WSL 2或通过SSH运行应用程序。其他各种改进包括对Docker、Kubernetes、Kotlin、Git和其他的支持。

IntelliJ支持的一个新的Java 16特性是能够在内部类中声明静态成员。

public class OuterClass {
    class InnerClass {
        static final String STATIC_MESSAGE = new String("Works in Java 16")。

        静态字符串staticMethod() {
            返回STATIC_MESSAGE。
        }
    }

传统的Java bean类文件可以转换为Java records。当所有字段都被声明为**final时,这可以自动完成。例如,下面显示的Student**类,通过在类名上按ALT-Enter,选择Convert to a record,就可以转换为记录。

public class Student {
    private final String firstName;

    public Student(String firstName) {
        this.firstName = firstName;
    }

    public String firstName() {
        返回firstName。
    }
}
public record Student(String firstName) {
}

记录没有明确的getter方法,例如 Student 类中显示的 firstName() 方法。然而,如果一个类包含一个getter方法,例如 getFirstName(),那么生成的记录也会有**getFirstName()**方法。

也可以搜索所有可能被转换为记录的合格类。在记录不提供所需功能的情况下,可以使用从记录到类的转换。

对于 instanceof 操作符的模式匹配一直是一个两步的过程。首先,instanceof 被用来检查其参数是否为正确的类型,其次,对象被转换为该特定类型。Java 16 的 模式匹配 消除了铸造的需要,IntelliJ可以取代旧的模式匹配风格并删除铸造。

IntelliJ IDEA支持新的Java 16 toList() 方法,并在 Stream 接口实例的代码完成中首先显示它。

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/feb5e941ab564e16af364bd865127172~tplv-k3u1fbpfcp-zoom-1.image

现在只要数组或条件的大小为负数,就会显示警告。当 Collection.toArray()方法被错误地使用时,会显示另一个警告,以避免可能出现的ClassCastException

新的 HTML预览 功能可以通过点击IntelliJ的图标打开,如下图所示。对HTML、CSS和JavaScript的修改会立即显示在预览窗口中。

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a93682f32c7d4d79889582afe3902b56~tplv-k3u1fbpfcp-zoom-1.image

Run Targets是IntelliJ IDEA的一个终极功能,它提供了在目标上运行、测试和调试应用程序的能力。通过Run Targets,可以在Docker、SSH和WSL上运行Java应用程序、JUnit测试、Maven、Gradle、Micronaut、Spring Boot和Quarkus(基于Maven)项目。

IntelliJ IDEA现在可以检测WSL 2中安装的JDK,如果有必要,可以下载并安装JDK。一旦安装完毕,WSL 2里面的Java项目就可以被IntelliJ IDEA构建系统编译和运行。WSL 2目录下的Maven或Gradle应用 \wsl$ 可以在 IntelliJ 中使用。

可以为自定义信息创建自定义Git提交模板。 运行检查使得在提交前分析代码成为可能。通过与分支比较选项,选择文件并点击向下的箭头,可以将一个文件从一个分支复制到另一个分支。

现在支持使用Goessner或Jayway语法的JSONPath表达式,可以通过Edit | Find | Evaluate JSONPath Expression进行测试。选择一个JSONPath表达式并按Alt+Enter可以用来评估JSONPath表达式。这个新版本还支持带分隔符的JSON文件,如 .jsonl, .jslines, .ldjson.ndjson

Docker的可用性通过在IntelliJ的配置窗口和Docker文件中的镜像名称中引入代码完成而得到改善。容器可以根据Docker文件启动,现在也可以通过点击 Stop Deploy 停止它。

在一个多阶段的Docker文件中,每个阶段都会显示一个锤子图标,只构建该阶段。在Run/Debug配置中添加Run部分后,图标会改变,它将构建一个镜像并运行一个容器。

Kubernetes资源可以通过打开配置文件并点击Run图标来删除。 kustomize,谷歌为Kubernetes提供的无模板YAML工具,在3.7.0版中引入了组件,它们可以通过Settings/Preference | Languages & Frameworks | Kubernetes 配置所需的 kustomize 版本在IntelliJ中使用。

Kotlin的代码分析速度和代码补全得到了改进。引入了关于不适当的阻塞方法调用的警告,还修复了Kotlin的语言注入功能的问题。

更新了HTTP客户端的用户体验和用户界面,可以选择复制响应主体而不复制响应的其余部分。现在可以通过点击添加环境文件,然后点击私有来实现对客户端认证的SSL支持。

其他新功能包括:

  • 链式方法调用的格式化规则可以通过 设置|编辑器|代码风格|Java|包装和大括号|链式方法调用 进行配置。
  • 一个新的保存到书架动作: 将用户的修改保存在书架上,同时也将它们保存在本地修改中。
  • 在Windows上,可以通过右键点击IntelliJ IDEA图标来打开最近的项目。

新功能的更多细节可以在 IntelliJ IDEA 2021.1 页面的 what's new 部分找到。

IntelliJ IDEA最初于2001年1月推出,在全球有超过400万开发者使用。JetBrains最近庆祝20周年,对过去20年的所有亮点进行了回顾

本文翻译自:JetBrains Releases IntelliJ IDEA 2021.1