贵阳网站商城建设,免费的seo优化工具,增城网站建设推广,公司网站建设定金计入什么科目jep290涉及jdk版本JDK 12已于2019年3月19 日上线GA#xff0c;继续致力于缩短发布周期和频繁发布。 该版本的功能部分可以在这里找到。 对于开发人员来说#xff0c;有趣的功能之一是“ JEP 325开关表达式 ”#xff0c;它可以作为预览功能使用。 此处定义的预览功能是继续致力于缩短发布周期和频繁发布。 该版本的功能部分可以在这里找到。 对于开发人员来说有趣的功能之一是“ JEP 325开关表达式 ”它可以作为预览功能使用。 此处定义的预览功能是 预览语言或VM功能是Java SE平台的一项新功能该功能已完全指定完全实现但不是永久性的。 JDK功能发布中提供了该功能以根据实际使用情况激发开发人员反馈。 这可能会导致它在将来的Java SE平台中永久存在。 在本文中我将向您展示switch是如何从一个语句变成一个表达式的。 语句是可以执行但不会求值的东西而表达式是在执行时可以求值的东西 //Statement System.out.println( This is a statement ); //Expression 6 5 ; 切换为表达式 开关作为表达式的语法已更改 Object switchResult switch ( variable ) { case choice1 - result1; case choice2 - result2; default - resultDefault; } 除了上述使用开关之外它还可以用作语句 switch ( variable ) { case choice1: doSomeThing(); break ; case choice2: doOtherThing(); break ; default : doDefaultThing(); } 我并没有打算介绍switch表达式。 你可以在这里阅读。 本文的其余部分将显示如何将开关用作表达式。 下面的代码片段显示了switch作为表达式的用法请注意switch现在产生一个值在这种情况下为boolean public static boolean isHealthy(String food){ return switch (food){ case Fruit - true ; case Vegetable - true ; case Pizza - false ; case Burger - false ; case Pulses - true ; case Soft Drink - false ; default - false ; }; } System.out.printf( Fruit is %s\n , isHealthy( Fruit )); 从上面的代码片段中我们可以看到开关中使用的表达式现在也可以是字符串。 这在语句和表达式中均适用。 如果要求值的表达式的值不是固定值那么我们需要提供default块。 如果我们将enum用作开关表达式则无需提供默认情况因为枚举中可能的结果仅限于枚举值。 在下面的示例中显示 enum Food { Fruit, Vegetable, Pizza, Burger, Pulses, Soft_Drink } public static boolean isHealthEnumVersion(Food food){ return switch (food){ case Fruit - true ; case Vegetable - true ; case Pizza - false ; case Burger - false ; case Pulses - true ; case Soft_Drink - false ; }; } System.out.printf( Pizze is %s\n , isHealthEnumVersion(Food.Pizza)); 另一个例子我们将方法评估的结果作为表达式放入开关中 public static int evaluateLunch(Food food){ return switch (isHealthEnumVersion(food).toString()){ case true - 10 ; case false - 5 ; default - 0 ; }; } System.out.printf( Your food received %d points\n , evaluateLunch(Food.Burger)); 代码块作为案例评估 在前面的示例中我们看到案例是针对单行表达式进行映射的。 当我们需要针对案例评估代码块时我们该如何处理 public static PreparedFood prepareFood(Food food){ return switch (food){ case Pizza - { System.out.println( doing pizza related operations ); break new PreparedFood(food); } case Burger - { System.out.println( Doing burger related operations ); break new PreparedFood(food); } default - { System.out.printf( Doing %s related operations\n , food.toString()); break new PreparedFood(food); } }; } 您可能会注意到 break已得到增强可以接受参数该参数成为针对案例评估代码块的结果。 使用旧语法切换为表达式 我们可以坚持使用switch的旧语法即不使用-符号如下所示 public static int evaluateLunchOldWay(Food food){ return switch (isHealthEnumVersion(food).toString()){ case true : break 10 ; case false : break 5 ; default : break 0 ; }; } 可以在这里找到本文的完整代码。 翻译自: https://www.javacodegeeks.com/2019/04/jdk-12-jep-325-switch-expressions.htmljep290涉及jdk版本