java使用:: 表达式_Java 12:开关表达式
java使用:: 表达式
在Java 12中,对switch
语句进行了增强,以便可以将其用作表达式。 现在也可以在一种情况下打开多个常量,从而使代码更简洁易读。 这些增强功能是一种预览语言功能 ,这意味着必须使用--enable-preview
标志在Java编译器和运行时中显式启用它们。
考虑以下switch
语句:
int result = - 1 ; switch (input) { case 0 : case 1 : result = 1 ; break ; case 2 : result = 4 ; break ; case 3 : System.out.println( "Calculating: " + input); result = compute(input); System.out.println( "Result: " + result); break ; default : throw new IllegalArgumentException( "Invalid input " + input); }
在Java 12中,可以使用switch
表达式将其重写,如下所示:
final int result = switch (input) { case 0 , 1 -> 1 ; case 2 -> 4 ; case 3 -> { System.out.println( "Calculating: " + input); final int output = compute(input); System.out.println( "Result: " + output); break output; } default -> throw new IllegalArgumentException( "Invalid input " + input); };
如上图所示:
- 在表达式中使用该
switch
将值分配给result
整数 - 在单个
case
有多个标签用逗号分隔 - 新的
case X ->
语法没有任何缺陷。 仅执行箭头右侧的表达式或语句 break
语句接受一个参数,该参数成为switch
表达式返回的值(类似于return
)
翻译自: https://www.javacodegeeks.com/2019/06/java-12-switch-expressions.html
java使用:: 表达式
java使用:: 表达式_Java 12:开关表达式相关推荐
- jdk switch 枚举_JDK 12开关表达式遇到意外的枚举值
jdk switch 枚举 正如我在" 玩JDK 12的Switch表达式 "一文中所写的那样, JDK 12 Early Access Build使JEP 325 [" ...
- JDK 12开关表达式遇到意外的枚举值
正如我在" 玩JDK 12的Switch表达式 "一文中所写的那样, JDK 12 Early Access Build使JEP 325的实现(" Switch Expr ...
- java lambda使用_Java 8 Lambda表达式的使用
lambda表达式允许你通过表达式来代替功能接口.lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块). Lambda表达式还增 ...
- java块语句_Java运算符、表达式、语句块
一.运算符 在java中用于程序计算的操作i发统称为运算符,运算符分为如下几类: 1.算术运算符 算术运算符 说明 + 加号两边是数值,可以运算,如果一边存在字符串,则当作连接符 a+b - 两个数相 ...
- java 计算运算表达式_java字符串运算表达式的计算
一道面试题,如何不拆分字符串,对字符串表达式进行计算,形如:String str = "5+2-1" 1.[代码][Java]代码 import java.math.BigDeci ...
- java加法运算表达式_java运算符和表达式
1. 算术运算符与算术表达式(1) 加减运算符 +,-.例如 2+39,908.98-23等. 加减运算符是双目运算符,即连接两个操作元的运算符.加减运算符的结合方向是从左到右.例如: 2+3-8,先 ...
- java lambda 变量_java – 从lambda表达式引用的局部变量必须...
您只需将readln2的值复制到最终变量中即可: final String labelText = readln2 ; Button button = new Button("Click t ...
- java 方法调用表达式_java lambda怎么表达式判断被调用接口名称和接口中方法
1.首先能够用于lambda表达式的只能是interface,并且interface 中只有一个方法. 这就说明,只要找到接口类型就能确定用的是哪个方法.(如下:intTypeInterface.St ...
- java开发指南_Java 12新功能完整指南
java开发指南 六个月飞得如此之快,是时候再次仔细研究一下即将发布的新JDK版本. 让我们满足Java 12及其向开发人员介绍的功能. 自Oracle推出加速六个月的发布节奏以来已经有一段时间了,要 ...
最新文章
- 45种可以拿到Webshell的程序
- python模块、字符编码、文件读写
- Android经常使用工具类DateUtils(二)
- LeetCode_每日一题(8月)
- “阳光天使”2007全国小姐大赛北京赛区决赛
- Java-三元运算符
- avue-crud属性说明
- 5脚耳机插座原理图_手机原理图的解读
- 【量化课堂】风险模型
- Linux Raid0的配置
- Android集成百度地图实现导航
- python实现税后工资_python税后工资计算器
- [计算机基础]浮点数在计算机中的表示
- 硬件接口之S/PDIF
- vue实现图片轮播二
- python arduino i2c1602_Arduino 将1602液晶显示屏改造为IIC接口
- 计算机二级文件名错误胶卷,第三章计算机环境安全..ppt
- Nexus搭建Maven私服并使用私服
- Epic版JustCause4(正当防卫4)0xc000007b错误解决方法
- 屏蔽硬盘坏道(HDTune+diskgenius)
热门文章
- 基站建设(三元环计数+根号分治 / bitset)
- [2021 CSP-S提高组] 题解(廊桥分配+括号序列+回文+交通规划)
- P7520-[省选联考 2021 A 卷]支配
- ARC122C-Calculator【乱搞,构造】
- P3462-[POI2007]ODW-Weights【贪心】
- jzoj6297-世界第一的猛汉王【切比雪夫距离,扫描线】
- Ch5501-环路运输【环形处理dp】
- P1040,jzoj1167-加分二叉树【树形dp】
- 【树形区间DP】加分二叉树(ssl 1033/luogu 1040)
- Hadoop入门(十一)Mapreduce的InputFomrat各种子类