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:开关表达式相关推荐

  1. jdk switch 枚举_JDK 12开关表达式遇到意外的枚举值

    jdk switch 枚举 正如我在" 玩JDK 12的Switch表达式 "一文中所写的那样, JDK 12 Early Access Build使JEP 325 [" ...

  2. JDK 12开关表达式遇到意外的枚举值

    正如我在" 玩JDK 12的Switch表达式 "一文中所写的那样, JDK 12 Early Access Build使JEP 325的实现(" Switch Expr ...

  3. java lambda使用_Java 8 Lambda表达式的使用

    lambda表达式允许你通过表达式来代替功能接口.lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块). Lambda表达式还增 ...

  4. java块语句_Java运算符、表达式、语句块

    一.运算符 在java中用于程序计算的操作i发统称为运算符,运算符分为如下几类: 1.算术运算符 算术运算符 说明 + 加号两边是数值,可以运算,如果一边存在字符串,则当作连接符 a+b - 两个数相 ...

  5. java 计算运算表达式_java字符串运算表达式的计算

    一道面试题,如何不拆分字符串,对字符串表达式进行计算,形如:String str = "5+2-1" 1.[代码][Java]代码 import java.math.BigDeci ...

  6. java加法运算表达式_java运算符和表达式

    1. 算术运算符与算术表达式(1) 加减运算符 +,-.例如 2+39,908.98-23等. 加减运算符是双目运算符,即连接两个操作元的运算符.加减运算符的结合方向是从左到右.例如: 2+3-8,先 ...

  7. java lambda 变量_java – 从lambda表达式引用的局部变量必须...

    您只需将readln2的值复制到最终变量中即可: final String labelText = readln2 ; Button button = new Button("Click t ...

  8. java 方法调用表达式_java lambda怎么表达式判断被调用接口名称和接口中方法

    1.首先能够用于lambda表达式的只能是interface,并且interface 中只有一个方法. 这就说明,只要找到接口类型就能确定用的是哪个方法.(如下:intTypeInterface.St ...

  9. java开发指南_Java 12新功能完整指南

    java开发指南 六个月飞得如此之快,是时候再次仔细研究一下即将发布的新JDK版本. 让我们满足Java 12及其向开发人员介绍的功能. 自Oracle推出加速六个月的发布节奏以来已经有一段时间了,要 ...

最新文章

  1. 45种可以拿到Webshell的程序
  2. python模块、字符编码、文件读写
  3. Android经常使用工具类DateUtils(二)
  4. LeetCode_每日一题(8月)
  5. “阳光天使”2007全国小姐大赛北京赛区决赛
  6. Java-三元运算符
  7. avue-crud属性说明
  8. 5脚耳机插座原理图_手机原理图的解读
  9. 【量化课堂】风险模型
  10. Linux Raid0的配置
  11. Android集成百度地图实现导航
  12. python实现税后工资_python税后工资计算器
  13. [计算机基础]浮点数在计算机中的表示
  14. 硬件接口之S/PDIF
  15. vue实现图片轮播二
  16. python arduino i2c1602_Arduino 将1602液晶显示屏改造为IIC接口
  17. 计算机二级文件名错误胶卷,第三章计算机环境安全..ppt
  18. Nexus搭建Maven私服并使用私服
  19. Epic版JustCause4(正当防卫4)0xc000007b错误解决方法
  20. 屏蔽硬盘坏道(HDTune+diskgenius)

热门文章

  1. 基站建设(三元环计数+根号分治 / bitset)
  2. [2021 CSP-S提高组] 题解(廊桥分配+括号序列+回文+交通规划)
  3. P7520-[省选联考 2021 A 卷]支配
  4. ARC122C-Calculator【乱搞,构造】
  5. P3462-[POI2007]ODW-Weights【贪心】
  6. jzoj6297-世界第一的猛汉王【切比雪夫距离,扫描线】
  7. Ch5501-环路运输【环形处理dp】
  8. P1040,jzoj1167-加分二叉树【树形dp】
  9. 【树形区间DP】加分二叉树(ssl 1033/luogu 1040)
  10. Hadoop入门(十一)Mapreduce的InputFomrat各种子类