Java 14:查看更新的switch语句
2020年3月发布的JDK 14附带了switch语句的更新版本。 这是JDK 12和JDK 13中的预览功能。
要了解差异,让我们看一个简单的示例。 假设我们要基于DayOfWeek枚举来计算每日工作时间。
使用旧的使用switch语句的方法,我们的解决方案可能如下所示:
DayOfWeek day = ... float expectedWorkingTime; switch (day) { case MONDAY: case TUESDAY: case WEDNESDAY: case THURSDAY: expectedWorkingTime = 8f; break ; case FRIDAY: expectedWorkingTime = 6f; break ; default : expectedWorkingTime = 0f; }
使用新的switch语句(或表达式),我们可以像这样重写示例:
DayOfWeek day = ... final float expectedWorkingTime = switch (day) { case MONDAY, TUESDAY, WEDNESDAY, THURSDAY -> 8f; case FRIDAY -> 6f; default -> 0f; };
因此,新功能:
- switch关键字可用作表达式并返回一个值。 在此示例中,开关返回的值被分配给ExpectedWorkingTime。 请注意,这使我们可以使ExpectedWorkingTime为final,这在以前的解决方案中是不可能的。
- 一个case语句可以包含多个值,以逗号分隔。
- 在case语句中,冒号替换为箭头(->)
- 使用箭头(->)语法时,不需要break关键字。 如果您更喜欢使用break,则在某些情况下仍可以使用较早的冒号语法。
新的收益声明
在前面的示例中,我们在箭头(->)的右侧返回一个简单值。 但是,也许我们需要首先计算该值,为此我们可能需要一些额外的代码行。
例如:
final float expectedWorkingTime = switch (day) { case MONDAY, TUESDAY, WEDNESDAY, THURSDAY -> { if (isFullTimeEmployee) { yield 8 ; } yield 4 ; } case FRIDAY -> 6f; default -> 0f; };
在这里,我们在第一个case语句中使用一个代码块来确定工作时间。 使用新的yield语句,我们从case块返回一个值(就像在方法中使用return一样)。
您可以在GitHub上找到本文中显示的示例。
翻译自: https://www.javacodegeeks.com/2020/04/java-14-looking-at-the-updated-switch-statement.html
Java 14:查看更新的switch语句相关推荐
- java switch语句_Java 14:查看更新的switch语句
java switch语句 于2020年3月发布的JDK 14带有switch语句的更新版本. 这是JDK 12和JDK 13中的预览功能. 要了解差异,让我们看一个简单的示例. 假设我们要基于Day ...
- Java SE7新特性之switch语句中使用字符串
2019独角兽企业重金招聘Python工程师标准>>> 在JDK 7发布版本中, 可以在switch语句的表达式中使用String对象: public String getTypeO ...
- JAVA入门级教学之(switch语句)
/* 关于switch语句(我称为匹配语句): 1.switch语句也属于选择结构,也是分支语句 2.switch语句的语法结构: 一 ...
- Java基础篇:嵌套 switch 语句
可以将一个switch语句作为一个外部switch语句的语句序列的一部分,这称为嵌套switch语句.因为一个switch语句定义了自己的块,外部switch语句和内部switch语句的case常量不 ...
- Java入门 Day004 补充(switch语句 for循环)
1.根据输入的值,判断当前季节(分别用if语句和switch语句实现 3,4,5 属于春季 6,7,8 属于夏季 9,10,11属于秋季 12,1,2属于冬季 (考虑非法数据) If语句: impor ...
- JAVA编写元音字母(Switch语句)
package com.helloworld; import java.util.Scanner; public class HelloWorld { public static <ch> ...
- java用switch语句算,Java的switch语句与条件运算符
文章导读 [前面学习了条件结构的if语句,可以解决多条件判断的情况.除了if语句外,Java语言还提供了switch语句和条件运算符用于简化条件判断语句的编写.本篇探讨Java的switch语句和条件 ...
- c语言switch scanf语句,c语言switch语句 谢谢·!~!~
c语言switch语句 谢谢·!~!~以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语言switch语句 谢谢·!~ ...
- java switch语句练习 从键盘输入2个数和一个运算符(+,-,*,/),输出运算结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
最新文章
- 记录PCLVisualizer问题
- 【React系列】状态(State)和生命周期
- CentOS 7 搭建docker仓库
- Docker - 实战TLS加密通讯
- Maximum sum(信息学奥赛一本通-T1305)
- finalshell连接超时怎么解决_vncviewer连接超时,vncviewer连接超时怎么解决
- php图片写入带问号_php-fpm Remote Code Execution 分析(CVE-2019-11043)
- 苹果推出Find My Friends好友追踪iOS应用
- python学到什么程度可以找到工作-Python学到什么程度才可以去找工作?掌握这4点足够了!...
- linux用openssl制作自签名数字证书
- 中文ISBN公开信息查询接口
- SpringCloud Hoxton——Bus服务消息总线
- (MATLAB)把视频读得明明白白
- 2019最新IDEA Java教学视频课程资料
- LWR--local weighted regression
- 通过Xcodeproj深入探究Xcode工程文件
- BJDCTF 2nd writeup(二)
- 用计算机套路别人,套路计算器隐藏版
- 包嗅探和包回放简介-tcpdump,tcpreplay
- vulhub复现之shiro反序列化漏洞复现