当前位置: 首页 > news >正文

Java 20和IntelliJ IDEA,一起让开发变得更轻松!

IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。

相比之前的一些版本,Java 20 的新增功能相对较少。 它引入了作用域值作为孵化 API,通过在线程内和跨线程共享不可变数据来支持虚拟线程。 在它的第二个预览版中,记录模式改进了对泛型记录模式的支持,并支持在增强 for 语句中使用记录模式。 在它的第四个预览版中,switch 的模式匹配改进了它在处理详尽 switch、简化 switch 标签和推断泛型记录模式的类型实参时的使用。

在 Java 20 的第二个预览版中,Foreign Function & Memory API 继续改进其功能,使 Java 代码能够与 JVM 外部的代码和数据进行对话。 虚拟线程是一种轻量级线程,它将彻底改变您创建多线程应用程序的方式。虚拟线程受结构化并发支持,在最新 Java 版本的另一个预览版中推出。 Vector API 目前处于第五个预览版阶段,可以帮助您在代码中进行矢量计算。

在本文中,我将介绍IntelliJ IDEA在语言功能方面的支持,例如记录模式和 switch 的模式匹配,并将特别介绍最有趣的变化,例如改进了泛型记录模式的类型推断、详尽 switch 语句和表达式,以及增强 for 语句头中的记录模式方面的支持。

IntelliJ IDEA 配置

IntelliJ IDEA 2023.1中提供了对 Java 20 的支持,未来的 IntelliJ IDEA 版本将提供更多支持。

要使用 Java 20 中诸如记录模式和 switch 的模式匹配等新语言功能,请转到ProjectSettings | Project(项目设置 | 项目),将 Project SDK(项目 SDK)设置为 20,将 Project language level(项目语言级别)设置为20 (Preview) – Record patterns (second preview), Pattern Matching for switch (fourth preview)

您可以使用系统上已经下载的任意版本 JDK,也可以点击Edit(编辑),然后选择Add SDK >Download JDK…(添加 SDK > 下载 JDK…)来下载其他版本,可以从供应商列表中选择要下载的 JDK 版本。

在 Modules(模块)标签页上,确保为模块选择相同的语言级别 –20 (Preview) – Record patterns (second preview), Pattern Matching for switch (fourth preview)

选择此选项后,可能会出现以下弹出窗口,通知您 IntelliJ IDEA 可能会在后续版本中停止对 Java 预览语言功能的支持。 因为预览功能不是永久性的,并且可能在未来的 Java 版本中发生变化(甚至被移除)。

switch 的模式匹配

在 Java 20 中,switch 的模式匹配已进入第四个预览版阶段。 如果您对模式匹配完全陌生,建议您参见此链接来首先了解 instanceof 模式匹配。 如果您尚不熟悉 switch 的模式匹配,请参见此链接。

Java 20 中对此功能进行了一些更改。 与枚举类结合使用时,如果详尽 switch 语句或 switch 表达式在运行时找不到匹配的标签,则 switch 的模式匹配现在会抛出 MatchException,而不是抛出 ImcompatibleClassChangeError。 Java 20 中此功能的另一个变化是关于 case 标签中泛型记录模式的类型形参推断。

总结

​​​​​​​IntelliJ IDEA继续降低开发者使用最新 Java 功能的认知负担, IntelliJ IDEA 2023.1 支持 Java 20 中添加的对“switch 的模式匹配”和“记录模式”等语言功能的更改,这些功能中最有趣的变化是支持在增强 for 语句头中使用记录模式,以及改进了泛型记录模式类型实参的类型推断。

http://www.jsqmd.com/news/1398675/

相关文章:

  • 请解释一下PHP中的模板引擎。
  • 运城装修公司-一家一装饰 - 装修新知
  • Lua性能分析实战:如何用Miku-LuaProfiler快速定位内存暴涨与耗时瓶颈
  • 动漫资源聚合神器 AnimeGarden:一键搜遍全网动画 BT 资源的完整攻略
  • 北京装修公司-北京巧创空间装饰集团 - 装修新知
  • 如何用一张画布讲清多维数据:ECharts多图表组合实战拆解
  • Winlator-Frost 实战排查指南:闪退、卡顿、花屏都能救
  • 企业数据出境场景安全评估
  • 笔记越记越乱?用Obsidian模板把知识连成网
  • 2026年苏州铜箔公司权威推荐:本土厂家选购指南
  • PHP中的cURL库是什么?如何使用它?
  • 蓝速科技桌面 AI 双屏翻译机:企业涉外会议设备选型与落地指南
  • 界面控件Telerik UI for WinForms使用指南 - 数据绑定 填充(一)
  • Python盲水印工具快速上手指南:三步在图片中嵌入看不见的信息
  • 护眼提醒软件怎么选?Project Eye 用 20-20-20 规则替你盯着时间
  • 抖音批量下载完整教程:从手动搬运到自动化采集,一文搞定
  • Windows 解锁 Apple Touch Bar 完整功能:DFRDisplayKm 驱动实战指南
  • ZPL虚拟打印机保姆级上手指南:5步实现无硬件条码标签测试
  • Unmanic 快速上手指南:一条命令搭好你的媒体库自动优化系统
  • electerm 可读性提升实战:3 步调好主题与字体,告别终端眼睛酸涩
  • 北京装修公司口碑好选择 巧创空间全案自营整装服务 - 装修新知
  • 051、高通Spectra ISP的IFE-BPS-IPE三级流水线深度解析:从RAW域到YUV域的架构决策与Chromatix调优实战
  • 零绿幕直播入门:OBS 背景移除插件终极指南,从安装到调优一次搞定
  • 【案例分享】大公司资料体系整改实践案例(一)
  • WinForm应用实战开发指南 - OutLookBar工具条开发
  • Adobe-GenP 3.0完整教程:免费激活Adobe全家桶的一键修补指南
  • 不用换电脑也能跑:Boogu-Image-0.1-Turbo-8bit的int8量化内存优化实战
  • 北京16区包包回收行情摸底:东城全套配件溢价最高,大兴房山更适合快速变现* - 好物循环记
  • 北京装修公司-苏技装饰 - 装修新知
  • Cesium 展示——影像图层加载