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

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 以及大数据优质知识。

河南一家5口4人被杀,凶手是夫妻,妻子被判12年引发争议最近一段时间,媒体报道了河南一家五口一年前惨遭灭门的消息,其中一家五口,有四人被杀,而凶手竟然是另一个家庭的夫妻俩。看到这个消息,很多网友都感到非常震惊有什么深仇大恨,非要闹得如此60岁岳父灭了女婿一家三口,二审时死刑变死缓,啥仇这么大?今天我们要说的这个故事,发生在东三省的吉林一个60岁的老翁,竟然杀死了自己的女婿,以及女婿的父母,而女婿的父母也就是老翁的亲家,都是教师。而老翁的女婿只有33岁,正是人生的黄金年龄苏黎世联邦理工学院研究通过12个小型无线电磁传感器追踪人体姿态(映维网2021年10月12日)苏黎世联邦理工学院的先进交互技术实验室(AdvancedInteractiveTechnologiesAIT)专注于而研究机器学习计算机视觉和人机交比手机更靠谱的考生礼物?vivoTWS2成释放压力首选转瞬间已至年中六月,除了天气炎热外,这两天的高考氛围又为这炎炎夏日增添了一份热度。与很多家庭一样,我家里老妹也是今年的考生之一。回想起当年高考结束之后的我,仿佛心中还存有一丝惬意。武新制冷天然气管网压力能回收及冷能综合利用项目初步调试成功余压余冷等新常规能源的回收利用,是实现碳达峰碳中和的解决方案之一。2021年7月,顶着火热的夏日骄阳,冰山集团武新制冷设计并投资承建的武汉市三金潭调压站天然气管网压力能回收及冷能综音频剪辑无压力,分分钟教你搞定大家好,我是小编浩克,音频转换不会怎么办,相信很多小伙伴们都遇到过这种烦恼,迅捷音频转换器轻松好用,支持多种格式互换,还包括音频剪辑音频合并和音频提取功能分割方式多样功能丰富的软件大数据机构培训班学习效果好吗?学习之路是如此的漫长,有的人总想着还是要多掌握一门技能,大数据一词又是最近比较火热的词条之一,一部分人想着学也是学,不如学一学这大数据技术,那么问题又来了,当选择去大数据培训机构培大数据学习SparkRDD操作入门在Spark框架组件当中,核心部分不得不提到一个重要的概念,叫做RDD。而这个RDD,本身来说,也是Spark框架相比早期的HadoopMapReduce框架实现了性能提升的重要一猪队友促震荡利布局上周判断本周金融三兄弟将换岗式护盘,但证券却故意制造震荡,造成大盘摇摇欲坠之感,从而利于主力布局明春行情。上周说银行和证券是本周主角,但证券却成了猪样的队友,打击小散一致看多的心理大数据开发基础之SQL语句基本操作昨天我们把MySQL的基础知识大概说了一遍,所以接下来几篇文章我们都会细化的讲讲MySQL的一些内容,而今天就给大家带来大数据开发基础之SQL语句基本操作,在有了理论知识后也必须动大数据开发zookeeper命令操作本期又是大家最喜欢的命令合集,今天给大家带来的是大数据开发zookeeper命令操作。作为大数据开发学习的基础,最基本的可不能落下,下面就开始zookeeper的命令操作的学习吧!
镜头里采耳师戴头灯为顾客舒耳一套小工具逐个入耳客人很享受采耳也就是掏耳朵,但不同于平常我们自己的掏耳朵,是由采耳师使用一套工具进行的专业掏耳朵。早在唐代的时候,民间就出现采耳的营生,主要是因为采耳能够使人舒服促进睡眠,所以很受当时宫廷大带着孩子买个宠物狗迎接狗年是给孩子的新年礼物也是家庭新成员我的年记得小时候,最大的心愿就是能拥有一只属于自己的宠物,呆萌可爱的小狗是许多孩子梦寐以求的礼物,养一只小狗,一起玩耍,一起长大。父母同意孩子养宠物往往都是带有附加条件的,或是学习中秋营销文案已出,杜蕾斯和杰士邦的文案你更认可哪个?今年的中秋节营销文案,在套套圈里,首先是杰士邦先出手的。杰士邦推出了一组系列中秋礼盒装文案,从礼盒包装和文案设计来看,不可谓不用心。文案一出,也还是引发可媒体朋友电商朋友的热议,好阿里云盘启动公测,不限速将卷到同行,营销手法莫理解为长期承诺今天(2021年3月22日)阿里云盘官方微信公众号发布了写给资深盘友的文,在进行了50多个迭代之后,终于在今天开启了公测。公测期内,阿里云盘为用户提供了纪念码,凭码可以兑换322G乐视发布会贾跃亭未现身,不是什么误会,看客想多了2021年5月18日,如前几天宣传海报所安排,乐视召开了智能生态发布会。此前发布会预热宣传海报上,乐视的邀请函上写有我回来了四个字,并配有看似贾跃亭招手的剪影图,这让一些人以为此次年轻人首选?华硕a豆发布会看点十足,全新笔电性能提升40随着时间步入九月中旬,有很多厂商都预备了自己的秋季发布会,以求给消费者带来更多新的产品选择。而在这众多厂商之中,电脑领域的华硕就是其中之一。从华硕官微给出的爆料来看,在其9月15日互联网大厂离职群名很有趣,你的老东家离职群名叫什么?俗话说得好,铁打的营盘流水的兵。只要兵营还在,流出去的兵,就会带着是前某兵营战士的标签在社会上继续飘。因此,不管是带着什么的情绪离开的,有些可能会希望不再和原来的兵营再发生什么交集漫展上coser精心打扮希望摄影师留住精彩瞬间也是初学摄影练习场2017西安国际动漫游戏文化周在曲江国际会展中心举行,活动现场聚集了大批西安喜欢动漫游戏cosplay的爱好者。他们中的很多人将自己装扮成各种动漫游戏中的角色,装扮另类夸张,带着各关中满月宴流水席厨师精心准备18道菜炖甲鱼蒸扇贝特色穰饸随着生活水平不断提高,如今农村的流水席,不论是菜色还是味道越来越好,有荤有素,丰盛美味,一桌客人吃完后再换一桌客人吃,主人热情招待亲朋好友街坊四邻。陕西关中的一个满月宴上,主人就奉文玩核桃几元一对到万元一对玩家喜欢开青皮不喜欢人工培育异形陕西西安,西仓档子集市上聚集了很多售卖文玩核桃的小贩及挑选核桃的玩家。在西仓档子上文玩核桃的价格差异很大,有的低至几元一对,有的高到上万元一对。随着核桃成熟上市,档子上不仅有已经精大叔坚持传统手工制作各种刷子骑着28大杠西安街头走街串巷售卖西安市区街头卖刷子的张大叔,推着已经跟随他30多年的货架和自行车,行走在西安的各个角落。57岁的张大叔是陕西武功县人,30多年前就在那里做各种刷子,然后再推到西安城售卖。30多年过