返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java 21 新特性:switch的模式匹配
  • 366
分享到

Java 21 新特性:switch的模式匹配

Java 2023-09-26 10:09:42 366人浏览 独家记忆
摘要

在之前的Java 17新特性中,我们介绍过关于JEP 406: switch的模式匹配,但当时还只是关于此内容的首个预览版本。之后在jdk 18、JDK 19、JDK 20中又都进行了更新和完善。如今

在之前的Java 17新特性中,我们介绍过关于JEP 406: switch的模式匹配,但当时还只是关于此内容的首个预览版本。之后在jdk 18、JDK 19、JDK 20中又都进行了更新和完善。如今,在JDK 21中,该特性得到了最终确定!下面,我们就再正式学习一下该功能!

在以往的switch语句中,对于case中的类型匹配限制是很多的。比如下面这个例子中的Map中可能存储了不同类型的对象,我们要判断的时候,就只能依靠if-else来完成。

Map data = new HashMap<>();data.put("key1", "aaa");data.put("key2", 111);if (data.get("key1") instanceof String s) {  log.info(s);}if (data.get("key") instanceof String s) {  log.info(s);} else if (data.get("key") instanceof Double s) {  log.info(s);} else if (data.get("key") instanceof Integer s) {  log.info(s);}

现在开始,这样的类型判断关系,就可以简化为如下的switch代码:

switch (data.get("key1")) {  case String s  -> log.info(s);  case Double d  -> log.info(d.toString());  case Integer i -> log.info(i.toString());  default        -> log.info("");}

这个功能还是非常有用的,尤其是存在一些抽象封装的时候,可能存在一些父子、兄弟等关系类的时候,为了判断是什么类型,就不用写很多if来处理了,代码简洁度可以得到进一步的优化

对于上面的例子,还没有升级到Java 17的用户,还涉及两个中间知识点,建议可以补充学习一下:第一个是Java 16中的instance of增强;第二个是switch中使用Lambda的增强

如果您学习过程中如遇困难?可以加入我们超高质量的技术交流群,参与交流与讨论,更好的学习与进步!

欢迎关注我的公众号:程序猿DD。前沿技术早知道,弯道超车有希望!积累超车资本,从关注DD开始!

来源地址:https://blog.csdn.net/dyc87112/article/details/133070414

--结束END--

本文标题: Java 21 新特性:switch的模式匹配

本文链接: https://lsjlt.com/news/418301.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java 21 新特性:switch的模式匹配
    在之前的Java 17新特性中,我们介绍过关于JEP 406: switch的模式匹配,但当时还只是关于此内容的首个预览版本。之后在JDK 18、JDK 19、JDK 20中又都进行了更新和完善。如今...
    99+
    2023-09-26
    Java
  • Java 21 新特性和改进
    Java 21 是 Java 17 之后的下一个 LTS 版本。虚拟线程在 Java 21 中将成为正式功能。可以预期的是,Java 21 会成为一个很流行的 Java 版本。 Java 21 将在 2023 年 9 月 19 日发布。目...
    99+
    2023-09-21
    java jvm 开发语言
  • 详解Java中switch的新特性
    目录一. switch分支结构1. 简介2. 基本语法3. 语法规则(重点)4. 执行逻辑二. switch案例1. 基本案例2. case穿透三. switch新特性(了解)1. ...
    99+
    2023-05-20
    Java switch新特性 Java switch switch新特性
  • 前瞻|Java 21 新特性 String Templates(字符串模版)
    在日常写Java的时候,对于字符串的操作是非常普遍的,其中最常见的就是对字符串的组织。也因为这个操作非常普遍,所以诞生了很多方案,总下来大概有这么几种: 使用+拼接使用StringBuffer和Spr...
    99+
    2023-09-08
    Java
  • Java 21即将发布,探索Java 21新特性和改进
    一、简介 Java 21是 Java 17之后的下一个 LTS版本。虚拟线程在 Java 21中将成为正式功能。Java 21 有望将会成为继 java8 之后又一个流行的 Java 版本。 二、发布时间 Java 21将在 202...
    99+
    2023-10-07
    java
  • C#9特性record 类型、模式匹配、init 属性详情
    目录C#的特性record 类型、模式匹配、init 属性一、record 类型二、模式匹配(Pattern Matching)三、属性的 init 访问器C#的特性record 类...
    99+
    2024-04-02
  • Java 21性能提升,会推出什么新特性?
    本文探讨Java 21值得期待的关键更新点。 微信搜索关注《Java学研大本营》 Java 20为我们带来了革命性的改进,现在我们一起揭开Java 21的面纱,探索一下它有哪些主要更新,并带来了哪些新特性: 1 更快的启动时间 ...
    99+
    2023-09-29
    java python 开发语言
  • Java 21:最新特性、性能改进和语言发展
    文章目录 模式匹配和模式变量新的记录类型生产者接口本地类型推断的扩展新的垃圾收集器动态CDS档案G1垃圾收集器的增强Java语言的持续发展性能改进和JEPJava 21的部署和使用Java 21的生态系统结语 &#x...
    99+
    2023-12-23
    java 开发语言
  • Java/JDK 21正式发布!15个特性一览
    JDK 21已经于2023年9月19日正式发布。本文总结了JDK 21发布的新特性。 发布版本说明 根据发布的规划,这次发布的 JDK 21 将是一个长期支持版(LTS 版)。LTS 版每 2 年发布...
    99+
    2023-09-23
    java 开发语言
  • 【Java】JDK 21中的虚拟线程以及其他新特性
      目录 一、字符串模板(String Templates) 二、序列化集合(Sequenced Collections) 三、分代ZGC(Generational ZGC) 四、记录模式(Record Patterns) 五、Fibers...
    99+
    2023-10-25
    java 开发语言 intellij-idea
  • Java新特性:Lambda表达式
    Java新特性:Lambda表达式 Lambda 表达式(Lambda expression),也可称为闭包(Closure),是 Java(SE)8 中一个重要的新特性。Lambda 表达式允许我们通过表达式来代替功能接口。Lambd...
    99+
    2023-08-17
    java python 开发语言
  • Scala模式匹配的方法
    这篇文章主要介绍“Scala模式匹配的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Scala模式匹配的方法”文章能帮助大家解决问题。简单匹配Scala的模式匹配最常用于match语句中。下面是...
    99+
    2023-06-27
  • C#8.0中的模式匹配
    C# 8.0中的模式匹配相对C# 7.0来说有了进一步的增强,对于如下类: class Point { public int X { get; } public in...
    99+
    2024-04-02
  • 【Java】BF算法(串模式匹配算法)
    ☀️ 什么是BF算法 BF算法,即暴力算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个与模式串T的第一个字符串进行匹配,若相等,则继续比较S的第二个字符和T的第二个字符;若不相等,则比...
    99+
    2023-09-10
    java 算法 开发语言
  • Java特性之设计模式【策略模式】
    一、策略模式 概述 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式 在策略模式中,我们创建表示各种策略的对象和一个行为随...
    99+
    2023-10-18
    策略模式 java 设计模式
  • JAVA 8 的新特性
    简介: 前段时间面了完美世界,被问到Java8的新特性,在此特地记录一下,虽然现在Java的版本可能已经很高了,但是Java8的新特性依然值得学习一下! 1. Lambda 表达式 lambda表达...
    99+
    2023-09-08
    java 开发语言
  • JDK 21预告:虚拟线程正式发布及十多项新特性
    1 前言 Java 21进入发布候选阶段,其中包括15个最终特性,包括虚拟线程、分代Z垃圾收集器和密钥封装机制API。 JDK21计划于9月19日作为Oracle标准Java实现的下一个LTS版本发布...
    99+
    2023-09-22
    java jvm 开发语言 原力计划
  • Scala中的模式匹配是什么
    这篇文章主要介绍Scala中的模式匹配是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性,Sca...
    99+
    2023-06-27
  • 匹配重复模式的正则表达式
    小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《匹配重复模式的正则表达式》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!问题内容我有以...
    99+
    2024-04-04
  • Java中JDK提供三种匹配模式是什么
    小编给大家分享一下Java中JDK提供三种匹配模式是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!匹配模式JDK提供三种匹配模式,分别是:贪婪模式(greed...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作