JetBrains IntelliJ IDEA 2022.2 使用 Java 17 运行时

OCaml智者
• 阅读 773

JetBrains 发布 了 IntelliJ IDEA 2022.2,支持 Java 17 和最新的语言和框架,如 Scala、Kotlin、Spring 6 和 Spring Boot 3。

这个新版本使用了 JetBrains Runtime 17(OpenJDK 17 的一个分支),性能得到了提升,比如渲染速度更快,这样归功于 Metal API 和改进的 Vector API 向量计算。 VoiceOver屏幕阅读器 增强了 macOS 平台的可访问性,并且通过使用最新的 OpenJDK LTS 改进了安全性。

这个版本还包含了对 Java 检查和代码补全的各种改进。Java 检查现在可以识别 Charset 的 name()和 toString()方法,并在变量隐藏了字段和捕获不必要的 Object.requireNonNullElse 调用时发出警告。各种 JUnit 检查被转换为 JVM 检查,以支持其他语言,如 Kotlin。代码补全现在支持.class 字面量。

现在可以支持 Kotlin 1.7.0 的特性,IntelliJ 改进了对绝对不可空类型的渲染。调试器现在集成了数据流分析( Data Flow Analysis ,功能在 Java 中已经可用)功能,用于提示哪些条件为 true 以及将执行哪些分支。从这个版本开始,在项目设置中定义的 Kotlin 编译器版本将用于消除本地和 CI 构建平台之间的不一致。代码高亮显示、代码补全和 Find Usage 的性能也得到了提升。

Scala 3 的特性,比如无选项提取器、类型 Lambda、类型级编译器 intrinsic、多态函数,现在都得到了支持。现在,当匿名函数中使用了 return 关键字(导致部分代码不会被执行)或者当私有或类参数覆盖了超类变量时,IntelliJ 会发出警告。当编译器选项-Xlint:nonlocal-return 和-Xlint:private-shadow 被激活时,就会启用这些警告。Safe Delete 操作(允许从定义和调用中删除元素)现在支持类型参数。单独行操作的 Put 参数可用于将逗号分隔的列表分隔成单独的行。

IntelliJ 现在为 Groovy 4 中的 Groovy集成查询 (GINQ)提供了语法高亮显示、代码补全和检查功能。

这个版本包含了各种用户体验改进,比如 Run Current File,用于运行或调试单个文件,IDE 会自动选择正确的运行配置。

JetBrains IntelliJ IDEA 2022.2 使用 Java 17 运行时

用户可以用新加入的键盘快捷键 Alt+Shift+句点和 Alt+Shift+逗号增加或减少字体大小。当前字体大小附带恢复到默认大小的选项。

现在可以配置检查面板在编辑器中出现的方式,编辑器下拉菜单中有高亮显示,不需要修改严重级别。

现在可以通过按下代码自动补全弹出窗口中的三个点来打开代码自动补全设置。

JetBrains IntelliJ IDEA 2022.2 使用 Java 17 运行时

在设置->编辑器->智能按键中的关闭块注释设置选项现在可以用来禁用自动关闭块注释。

JetBrains IntelliJ IDEA 2022.2 使用 Java 17 运行时

现在可以通过按下 Alt+Insert 或右键弹出框为 Markdown 文件生成目录表。

Testcontainer 测试中,Docker 镜像的镜像补全功能允许用户选择 Docker 镜像的名称和版本。新的 Copy Docker Image 操作会将镜像保存到一个文件中,然后将其从一个 Docker 守护进程推到另一个 Docker 守护进程。现在,IntelliJ IDEA 在重启后会自动连接到 Docker 守护进程,这个可以在高级设置->Docker 中禁用。

前面提到的改进在所有的 IntelliJ IDEA 版本中可用,以下是 IntelliJ IDEA Ultimate 版本独有的特性。

这个版本完全支持 Spring Boot 3(计划在 11 月发布)和 Spring 6(现在需要 Java 17)。Spring 6 中创建的 HTTP 客户端可以是带有注解方法的 Java 接口,IDE 将提供 URL 补全和导航。

实验性质的 GraalVM 原生调试器可以用来调试原生 Java 镜像二进制文件。它要求安装 GraalVM 的开发版和 GraalVM 原生调试器插件。

远程开发(可以创建到远程环境的连接)能力得到了改进,连接也更加稳定。

现在,在进行性能分析时,CPU 和堆内存图表显示在控制台旁边,可以在收集快照的同时了解应用程序的性能。Start profiling 选项现在会在火焰图、调用树和方法列表中显示 Kotlin 的内联函数。

Kubernetes插件 现在集成了 Telepresence ,可以通过拦截 HTTP 请求来调试允许在 Kubernetes 集群中集群中的服务。

而且,IntelliJ 现在还支持 Angular 14 的独立组件、Vue 3 和 TypeScript 4.7。

有关 IntelliJ IDEA 2022.2 完整的变更概述可以在 JetBrains 网站的 What’s New 中找到。

对文章中内容感兴趣的小伙伴可以搜索微信公众号:敲代码的老贾,领取相应资料

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
美凌格栋栋酱 美凌格栋栋酱
3个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(