JetBrains IntelliJ IDEA 2022.2 使用 Java 17 运行时

2023-05-16

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 会自动选择正确的运行配置。

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

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

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

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

现在可以通过按下 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 中找到。

欢迎关注我的公众号:敲代码的老贾,回复“领取”赠送《Java面试》资料,阿里,腾讯,字节,美团,饿了么等大厂

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JetBrains IntelliJ IDEA 2022.2 使用 Java 17 运行时 的相关文章

  • 尝试使用 Eclipse 启动 Glassfish 服务器时出现 org.apache.catalina.LifecycleException

    我一直忙于使用 angularjs 前端构建一个 REST 应用程序 使用 MAVEN jersey quickstart webapp 使用 GLASSFISH Web 服务器在 Eclipse 上开发 今天 当我开始对项目进行一些开发时
  • 如何在java swing中的每个页面中打印带有页脚的整个JPanel

    好吧 这可能很简单 但想不通 我有一个包含 JTable 的 JPanel JTable 包含很少的行 有时更多 因为我推入其中的表模型取决于数据库 但是 我不使用任何包含 JTable 的 JScolpane 因此 当 JTable 包含
  • 如何使用 SLF4J 和 Log4j2 记录 FATAL(或任何自定义日志级别)

    我有那些具体的要求 需要能够登录FATAL level 需要使用SLF4J 需要使用Log4j2 现在 这是我的执行 final Logger logger LoggerFactory getLogger HelloWorld class
  • Hibernate OneToMany 关系是 PersistentBag 而不是 List

    我正在 javafx 中开发一个应用程序 它通过 RMI 与 EAR 连接 该 EAR 连接到 SQLServer DB 并使用 hibernate 映射 POJOS 这些 POJOS 包含双向 OneToMany 和 ManyToOne
  • Java Swing:清除JList而不触发监听器

    我的情况如下 我有一个 JList 只要在列表中进行选择 它就会触发搜索 使用 ListSelectionListener 我正在尝试使用以下命令重置列表上的选择list clearSelection 这样做的问题是使用clearSelec
  • .java 和 .scala 类之间是否可能存在循环依赖?

    假设我在 java 文件中定义了类 A 在 scala 文件中定义了类 B A 类使用 B 类 B 类使用 A 类 如果我使用 java 编译器 则会出现编译错误 因为 B 类尚未编译 如果我使用scala编译器A类将找不到 有没有可以同时
  • Maven + Cobertura:无法找到[您的班级]。你指定了源目录吗?

    我有 MyMath 类 有两个简单的方法 multi 和 add 和测试类只会测试多种方法 public class MainTest Test public void testMultiply MyMath tester new MyMa
  • 如何解决错误:java.lang.ClassNotFoundException:io.netty.util.concurrent.GenericFutureListener?

    昨天我第一次尝试用 Java 制作 Prometheus 客户端 从 Python 开始 最后是 GoLang 是否找到示例 import io prometheus client Counter import io prometheus
  • 在气球内显示带有照片的多个地标的最佳做法是什么?

    我有一个项目如下 从手机上拍摄几张照片 将照片保存在网络系统中 然后将照片显示在其中的谷歌地球上 我读过很多文章 但它们都使用 fetchKml 我读过的一篇好文章是使用 php 但使用 fetchKml 我不知道是否可以使用 parseK
  • 无法从后台服务通过 WiFi 访问互联网

    我将直接介绍我发现的一些事实 数据 如果您遇到 解决了类似的问题 请帮助我 我每 5 分钟向服务器发送一次数据 除非用户在服务器的帮助下手动将其关闭 wakeful broadcast receiver通过一个intent service
  • Java 的 QP 求解器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • LibGdx 如何使用 OrthographicCamera 滚动?

    我已经找了 10 个小时 字面意思 我已经完成了 我需要问一下 事情是我正在学习如何使用 LibGdx 来编写 Java 游戏 我正在做一个水平太空飞船游戏 所以 我最糟糕的问题是我不知道如何滚动 我认为绘制会更好地解释 我想绘制一个巨大的
  • JSP 标签+ scriptlet。如何启用脚本?

    我有一个使用标签模板的页面 我的 web xml 非常基本 我只是想在页面中运行一些代码 不 我对标签或其他替代品不感兴趣 我想使用不好的做法 scriptlet 哈哈 到目前为止 我收到了 HTTP ERROR 500 错误 Script
  • 当容器大小更改时,JTable 仅调整选定列的大小

    对于面板内的 JTable 如果面板变大 我如何将额外的空间仅分配给某些列 在我的例子中 分配给最后一列 尽管提供 第 3 4 列和8 将获得额外的空间 我想允许用户手动更改所有列的列大小 我尝试了 table setAutoResizeM
  • RMI 服务器:rmiregistry 或 LocateRegistry.createRegistry

    对于服务器端的RMI 我们需要启动吗rmiregistry程序 或者只是调用LocateRegistry createRegistry 如果两者都可以的话 各有什么优点和缺点 他们是同一件事 rmiregistry是一个单独的程序 您可以从
  • 将字符串中的字符向左移动

    我是 Stack Overflow 的新手 有一道编程课的实验室问题一直困扰着我 该问题要求我们将字符串 s 的元素向左移动 k 次 例如 如果输入是 Hello World 和3 它将输出 lo WorldHel 对于非常大的 k 值 它
  • Android 中的字符串加密

    我正在使用代码进行加密和加密 它没有给出字符串结果 字节数组未转换为字符串 我几乎尝试了所有方法将字节数组转换为字符 但没有给出结果 public class EncryptionTest extends Activity EditText
  • Android同步onSensorChanged?

    这是我的问题的后续 Android线程可运行性能 https stackoverflow com questions 36395440 android thread runnable performance 我在理解应用程序的同步方法时遇到
  • Java SE + Spring Data + Hibernate

    我正在尝试使用 Spring Data Hibernate 启动 Java SE 应用程序 并且到目前为止已经完成了以下操作 配置文件 Configuration PropertySource classpath hibernate pro
  • 监控 Java 应用程序上的锁争用

    我正在尝试创建一个小基准 在 Groovy 中 以显示几个同步方法上的高线程争用 当监控自愿上下文切换时 应该会出现高争用 在 Linux 中 这可以通过 pidstat 来实现 程序如下 class Res private int n s

随机推荐