范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Switch语句从Java7到Java17的演变

  概述
  自 java7 以来,java 中的Switch 语句经历了快速的演变。因此,在本文中,我们将举例讨论switch 语句从java7 到java17 的演变或变化。
  让我们从初始 java 7 开始Java 7: Switch语句
  在 Java7 之前,Switch 语句的判断条件只能接受int ,byte ,char ,short 类型的参数,这是很长一段时间以来的标准:int value = 5; switch (value) {     case 1:         System.out.println("One");         break;     case 5:         System.out.println("five");         break;     default:         System.out.println("Unknown"); } Java 8: Switch语句
  在 Java8 中,case 值和switch 语句开始演化时引入了字符串和枚举字符串 Switch Case 语句举例:String day = "Tuesday";         switch (day) {             case "Monday":                 System.out.println("Week day");                 break;             case "Tuesday":                 System.out.println("Week day");                 break;             case "Wednesday":                 System.out.println("Week day");                 break;             case "Thursday":                 System.out.println("Week day");                 break;             case "Friday":                 System.out.println("Week day");                 break;             case "Saturday":                 System.out.println("Weekend");                 break;             case "Sunday":                 System.out.println("Weekend");                 break;             default:                 System.out.println("Unknown");         } 枚举 Switch Case语句举例:enum DAYS {     MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } DAYS days = DAYS.SUNDAY; switch (days) {     case MONDAY:         System.out.println("Weekdays");         break;     case TUESDAY:         System.out.println("Weekdays");         break;     case WEDNESDAY:         System.out.println("Weekdays");         break;     case THURSDAY:         System.out.println("Weekdays");         break;     case FRIDAY:         System.out.println("Weekdays");         break;     case SATURDAY:         System.out.println("Weekends");         break;     case SUNDAY:         System.out.println("Weekends");         break;     default:         System.out.println("Unknown"); } Java 12: Switch语句
  Java 12 进一步增强了switch 语句,并引入了switch 表达式作为预览特性。
  它引入了一系列新功能: 当 switch 语句变成了switch 表达式时,您可以从一个switch 块中返回case 中可以有多个值您可以通过箭头操作符或 break 关键字从switch 表达式返回值,通过break 关键字返回值return  switch (day) {     case "Monday":         break "Weekday";     case "Tuesday":         break "Weekday";     case "Wednesday":         break "Weekday";     case "Thursday":         break "Weekday";     case "Friday":         break "Weekday";     case "Saturday":         break "Weekend";     case "Sunday":         break "Weekend";     default:         break "Unknown"; }; break 关键字返回结果值
  这个词后来在 Java 13 中被关键字"yield" 取代。return  switch (day) {     case "Monday":         yield  "Weekday";     case "Tuesday":         yield "Weekday";     case "Wednesday":         yield "Weekday";     case "Thursday":         yield "Weekday";     case "Friday":         yield "Weekday";     case "Saturday":         yield "Weekend";     case "Sunday":         yield "Weekend";     default:         yield "Unknown"; }; 通过箭头操作符返回值
  此外, Java 12 引入了箭头操作符作为简单的替代,而不是使用break 关键字返回值:return  switch (day) {             case "Monday"-> "Week day";             case "Tuesday"-> "Week day";             case "Wednesday"->"Week day";             case "Thursday"->"Week day";             case "Friday"->"Week day";             case "Saturday"-> "Weekend";             case "Sunday"-> "Weekend";             default->"Unknown";         }; 多个case标签
  同样, Java 12 也可以在一个case 语句中提供多个case 值,所以如果你观察上面的例子,因为有5 个case 在这里期望相同的值,所以我可以合并或合并多个case 值为一个,如下所示return  switch (day) {             case "Monday","Tuesday","Wednesday","Thursday","Friday" -> "Week day";             case "Saturday", "Sunday" -> "Weekend";             default->"Unknown";         }; Java 14: Switch 语句的改变
  我们在 java 12 和13 中讨论过的任何switch 语句和特性,都是预览特性,需要将flag -enable-preview 设置为true 。但是Java 14 让所有的特性都不再是预览特性。标志-enable-preview 在java 14 启动时不需要设置。并且switch 语句已经演变成switch 表达式!
  #Java 17: Switch语句/表达式:
  JDK 17 已经发布,这是一个LTS ( long-term support )版本,下一代的Spring Framework 6 和Spring Boot 3 (2022 下半年发布),也将基于JDK 17 。由此可以推测,JDK 17 可能会和JDK 8 一样,也成为未来Java 项目使用的主力版本。
  所以,现在才开始学 Java 的,可以直接学用JDK 17 。如果使用老版本学习资料进行学习,至少从JDK 8 开始,而JDK 8 之前的书,基本上都可以送废品收购站了。
  开关表达特性 模式匹配 Gaurded 模式null case 模式匹配
  它引入了一种新的开关特性,即模式匹配。您可以匹配 case 标签中的模式。 换句话说,你可以在switch 条件下传递对象,这个对象可以在switch case 标签中检查不同类型。return switch (obj) {     case Integer i -> "It is an integer";     case String s -> "It is a string";     case Employee s -> "It is a Employee";      default -> "It is none of the known data types"; };
  在上面的例子中,我将一个对象传递给 switch 条件。这在Java 17 之前是不可能的。然后可以检查该对象是否具有特定的数据类型,并将其赋值给一个变量。
  例如,考虑以下情况: case Integer i- > "It is an integer";
  传递的对象被检查类型为 Integer ,然后赋值给变量i ,如果它是一个整数。通过箭头操作符返回字符串"It is an integer"。Gaurded模式
  让我们以这个用例为例。
  在我检查了  Employee  实例的case 标签内,我想做一个额外的检查。
  传统上,你可以在案例陈述之后做这个。
  是这样的: case Employee emp:  if(emp.getDept().equals("IT")) {  yield "This is IT Employee";  }
  switch 预览版扩展了Java 中的模式语言,允许switch 针对多个模式测试表达式和语句,每个模式都有特定的操作。Java  17 已经引入guarded 模式,允许模式匹配逻辑用任意布尔表达式。您可以在case 标签本身中进行检查,如下所示:return switch (obj) {     case Integer i -> "It is an integer";     case String s -> "It is a string";     case Employee employee && employee.getDept().equals("IT") -> "IT Employee";     default -> "It is none of the known data types"; };  Null Case
  在 Java 17 之前,你不可能在不抛出空指针异常的情况下将空值传递给switch 语句。
  Java 17 允许您这样处理它:
  case null  -> "它是一个空对象";
  这就是从 java 7 到java 17 的转换过程。
  希望你喜欢这篇文章,点赞并且关注,学习更多 java 以及大数据优质知识。

30岁张康阳带娃出街,二人开玩具跑车兜风,深夜与陌生女子逛街在足球界,有不少明星选手都迎来了自己的感情生活,现在非常的甜蜜幸福。但还有一些选手仍旧处于单身,默默奋斗自己的事业。作为足球掌舵人的张康阳引起了网友的关注,近日网友发现30岁的张康CBA夏季联赛张祖铭159纪卓16分鄢手骐1410青岛男篮大胜辽宁北京时间7月15日,CBA夏季联赛今日开打,辽宁男篮今日对阵青岛男篮。青岛男篮从首节就牢牢掌握局面,除了第三节短暂断电之外,青岛男篮在大部分时间都大比分领先。最终青岛8856大胜辽还真是机不可貌相,越用越惊喜的红米K50一款有着塑料边框,第一眼看过去觉得廉价感十足的红米K50,从上市到现在那都是被很多人喷的一文不值,但它真的就一文不值吗?下面给大家说一下我使用过后的感受!在刚拿回来打开的时候给我的终结系列!202122梅罗博物馆双签1编球星卡现身国内最新收藏新闻最热体育大瓜,偶藏带你回顾上周体育收藏品资讯!每日新鲜资讯可移步偶藏APP首页发现板块查看。阿根廷国家队发布2022世界杯主场球衣阿迪达斯携手阿根廷足协(AFA)共同发iQOO10系列发布会定档7月19日!首发200W超快闪充为一大看点随着7月19日iQOO新品发布会的临近,数码爱好者们对于旗舰新机iQOO10系列的期待程度也不断增加。这款来自数字系列的最新迭代机型,也成为近期最受关注的安卓旗舰之一。据官方宣传,曝iQOO10系列下周正式发布,iQOO9跌至乞丐价,创低历史记录此前,iQOO手机官宣,iQOO10系列将于7月19日正式发布。随着时间的临近,iQOO手机官方也陆续公布了新机信息。iQOO手机官方宣布,iQOO10系列成为2022使命召唤手游雷军8月份将携小米工程样车亮相,开启系列测试Tech星球7月15日消息,据新浪科技,小米造车即将迎来一个重大节点在8月的一场公开活动上,雷军将会带着小米的工程样车亮相,随后便开启一系列测试。小米的员工及合作伙伴还透露了一个关中国男篮为何如此艰难战胜巴林队昨天中国男篮亚洲杯第二场比赛迎来了巴林队的挑战,最终以一分优势艰难的战胜巴林队,网上引起了轩然大波,虽说创造了历史以来战胜巴林队的最小分差,但是个人觉得能赢就行了,中国队最近确实面胡明轩徐杰又拉胯,罪魁祸首却是杜锋!国家队比广东队就差在这里北京时间7月15日,中国男篮1分险胜巴林队,打出了今年亚预赛亚洲杯比赛最艰难的一场。然而这场比赛结束之后,杜锋和他的中国男篮必须反思一个问题,胡明轩和徐杰是否应该被彻底踢出国家队?中国男篮为何如此艰难战胜巴林队昨天中国男篮亚洲杯第二场比赛迎来了巴林队的挑战,最终以一分优势艰难的战胜巴林队,网上引起了轩然大波,虽说创造了历史以来战胜巴林队的最小分差,但是个人觉得能赢就行了,中国队最近确实面胡明轩徐杰又拉胯,罪魁祸首却是杜锋!国家队比广东队就差在这里北京时间7月15日,中国男篮1分险胜巴林队,打出了今年亚预赛亚洲杯比赛最艰难的一场。然而这场比赛结束之后,杜锋和他的中国男篮必须反思一个问题,胡明轩和徐杰是否应该被彻底踢出国家队?
9黄3红,双方丢点球!西甲神奇一战,加图索爆踢饮料箱,吓懵球员北京时间10月8日凌晨3点,西甲联赛第8轮,奥萨苏纳主场迎战瓦伦西亚。瓦伦西亚本场比赛虽然是客场作战,但是最终还是笑到了最后,以21击败奥萨苏纳,也凭借净胜球优势将排名提升到了西甲世乒赛团体赛女子决赛开战10月8日,第56届世界乒乓球团体锦标赛(决赛)女子决赛在成都拉开战幕,中国队对阵日本队。中国队选手陈梦在比赛中庆祝得分,她在第一场比赛中以3比0战胜日本选手木原美悠。中国队选手王女排世锦赛八强七席大局已定,中比争夺最后一席昨天晚上到今天凌晨,2022年女排世锦赛又进行七场比赛,日本30胜波多黎各,塞尔维亚30淘汰泰国,意大利30胜阿根廷,美国31力克土耳其,多米尼加31德国,巴西30淘汰东道主荷兰,女排世锦赛塞尔维亚八连胜土耳其不敌美国新华社荷兰鹿特丹10月7日电(记者刘旸肖亚卓)2022世界女排锦标赛第二阶段(16强)小组赛7日进行了7场比赛,卫冕冠军塞尔维亚队以30击败泰国队,豪取八连胜。F组领头羊塞尔维亚队一个坏消息来了,节后,A股还有开门红吗?炒股,是不是可以预测?有人说可以,A股休市,美股就是先扬后抑,胜率99。这句话,让人难以反驳,真实不虚。七天小长假结束了,美股也交了最后的答卷,纳指大幅下跌3。8,一根大阴线,彻底两个利空消息落地,下周,A股能守住3000点吗?炒股,从来不是一蹴而就的事,你要是把时间线拉长,结果自然不会差到哪里去,而你要是在意一城一池的得失,注定会输得体无完肤!今天星期六,勤劳的人民上班了,但是根据资本市场的规则,股市是孙悦亮相新岗位!35岁陈露穿搭似少女,携女儿与年轻男子外出游玩近日,许久未现身的前男篮国手孙悦罕见现身,在官方举办的篮球精英赛中担任评委教练员,通过此次精英赛将挑选出4名球员,进入全国中学生篮球集训队进行训练。在比赛中担任教练员的孙悦非常认真手机每年换新vs三年一换,究竟哪个方案更适合多数人?文科技V力前些时间发布的华为Mate50系列iPhone14系列,点燃了数码圈。截至目前,这两大重磅旗舰依旧霸占各大社交平台的热榜,怎么选在哪里买值不值得入手等,都成为了消费者们最华为一高管跑28公里后猝死,运动是真凶吗?10月7日晚,华为心声社区发讣告称,公司监事会副主席丁耘先生,因突发疾病于10月7日凌晨不幸逝世,享年53岁。来自华为心声社区根据华为官网消息,丁耘1969年出生,在华为工作了26美国可以制裁华为,中国为什么不禁售苹果?背后的原因很真实大家都知道,巅峰时期的华为,不仅拥有全球最领先的5G通信技术,而且还拥有足以与高通苹果抗衡的自研芯片技术,华为的手机业务也因此获得了国内超过一半以上的市场份额。然而,华为的崛起触动京东副总裁蔡磊两年花掉几千万,只为治好这种病文乾总关于乾总简书签约作者,公众号乾总说。期待与你相遇,不早不晚,就现在刚好!蔡磊在互联网领域,蔡磊绝对是一个关键的存在。京东和京东健康两个行业巨头的崛起和上市,他的功劳不容忽视。买理财产品,选对银行很重要2020年,银行的大额存款和理财产品还是比较稳定的。年初,我有一笔闲置资金,打算购买上海银行的三年期大额存单,年息是4。13。不巧的是,我把50万资金凑齐时,那期大额存单的额度刚好狗币跌出突破边缘,DOGE币还能崛起吗?狗狗币是如何辉煌的?特斯拉公司的首席执行官埃隆马斯克(ElonMusk)是领先的meme代币特斯拉公司的首席执行官埃隆马斯克(ElonMusk)是领先的meme代币Dogecoin黄晓明参加表弟婚礼,合照时抢表弟风头和新娘站c位,表弟成配角十一国庆节期间,最红的明星莫过于黄晓明了,参加了表弟的婚礼还当了他们的证婚人,在婚礼上可谓是出尽了风头。黄晓明在微博上发文表示表弟和表妹在国庆期间一个在忙国际赛事,另一个在忙人生大辽宁小伙国庆回家,妈妈准备3道美食,吃完表示想想就流口水中国自古是个美食的国度,中国人的胃也是个美食家的胃,南方人的敢吃,东北人的会吃可是出了名的。东三省的美食遍布各地,东北大乱炖等各种耳熟能详的美食耳边飘过,但要说东北人最会怎么吃,还禅宗智慧为什么人一旦开悟,就会非常厉害?1。为什么人一旦开悟,也会变得很厉害?因为生活中最大的消是内耗人一旦开悟,就没有内耗。例如许多人似乎又活了一年,事实上,他们只是每天重复365次。这种人活了一辈子,也在原地打转,跳篮球精英赛在京落幕四名球员入选中国中学生篮球集训队新华社北京10月6日电(记者王镜宇)2022年李宁TOP24篮球精英赛6日在北京落幕,来自清华附中等中学的四位球员获得了进入中国中学生篮球集训队的名额。此次精英赛历时四天,通过篮球我曾以为贵州茅台毛利率92。1是最高的,原来我还是太天真了贵州茅台根据金十数据统计的以2022年中报为数据基础的各行业毛利率天花板,可谓是将一些暴利行业推上了风口。其中毛利率超过90的行业有保健品白酒医美中药电影娱乐西药金融。我曾以为贵州沿着高速看贵州杭瑞高速大兴至思南段黔东大地因路而动国庆假期,位于贵州省铜仁市大龙开发区的博邦山河(贵州)新材料有限公司年产15万吨一体化锂电池负极材料及石墨项目建设现场,随处可见工人忙碌的身影。国庆期间,我们根据项目施工进度需要,中央为什么要让成都崛起?成都和平时期是中国的西部首都,战争时期可成为中国的备份首都,成都的繁荣关乎中国大西部战略安全和稳定。国家为什么要让成都崛起?成都从古至今,在西南地区就是最繁华的经济政治中心,尤其是成都世乒赛男女团16强产生,中国女乒今晚迎战匈牙利队新京报讯(首席记者孙海光)10月4日晚,成都世乒赛团体赛结束小组赛阶段争夺,中国男女乒均以小组头名出线,男女团16强对阵也随之出炉。按照赛程,中国女乒将在今晚19点30分对阵匈牙利宁夏贺兰山生态环境持续恢复野生动物身影频现宁夏贺兰山国家级自然保护区内正在觅食的岩羊。于晶摄中新网银川10月4日电题宁夏贺兰山生态环境持续恢复野生动物身影频现中新网记者于晶在山间自由漫步的国家二级保护动物濒危野生物种岩羊,