Java 17中的switch表达式得到了改进,可以直接用于模式匹配。在switch表达式中,可以使用case标签后跟模式。 代码语言:java AI代码解释 Stringresult=switch(obj){caseStrings->"字符串:"+s;caseIntegeri->"整数:"+i;default->"未知类型";}; 2.2 实际应用 继续以上面的动物类为例,我们可以使用switch表达式进行模式匹...
package com.morris.java17; /** * switch表达式yield的使用 */ public class SwitchYieldDemo { public static void main(String[] args) { Month month = Month.APRIL; String season = switch (month) { case DECEMBER, JANUARY, FEBRUARY -> "winter"; case MARCH, APRIL, MAY -> { System.out.prin...
代码改写如下:publicstaticintgetSeasonNumber4(Stringseason){if(season==null){return0;}switch(season...
JDK 14新特性:switch表达式增强open in new window 另外,要注意的是,对于switch表达式中模式匹配的功能,JDK 17中的实现还是preview版本,所以了解为主,目前还不推荐用于正式环境,不排除后续有进一步改进的可能。 本期视频:https://www.bilibili.com/video/BV1JB4y1y7jw/open in new window ...
java --enable-preview SwitchTest 4 盘点Java 17 中的 switch 4.1 支持了switch 类型检查case 示例如下 record Point(int i, int j) {} enum Color { RED, GREEN, BLUE; } static void typeTester(Object o) { switch (o) { case null -> System.out.println("null"); case String s -> System...
Java 17中对switch的模式匹配增强 还记得Java 16中的instanceof增强吗? 通过下面这个例子再回忆一下: Map<String, Object> data =newHashMap<>(); data.put("key1","aaa"); data.put("key2",111);if(data.get("key1")instanceofString s) {...
String a="spring";String who=switch(a){case"jdk8","jdk17"->{System.out.println(1+1);yield"我是jdk家族";}case"spring","spring boot"->{System.out.println(2+2);yield"我是spring家族";}default->"未知";};System.out.println(who); ...
在java1.7之前 switch中使用String作为分支条件 在java中明确规定switch里面只允许使用int,char,和enum类型,但是我们实际编程过程中往往需要通过String来进行比较。那么应该怎么做呢?其实很简单,我们只需要将enum类型做一个小小的封装就可以达到我们的目的 Animal enum类:...
我们在java 12和13中讨论过的任何switch语句和特性,都是预览特性,需要将flag -enable-preview设置为true。但是Java 14让所有的特性都不再是预览特性。标志-enable-preview在java 14启动时不需要设置。并且switch语句已经演变成switch表达式!#Java 17: Switch语句/表达式: ...