莱芜网站建设公司,seo的搜索排名影响因素主要有,经典广告案例,网络营销的特点举例说明Java14#xff1a;栈长#xff0c;我还有机会吗#xff1f;栈长#xff1a;必须有#xff01;今天说下switch#xff01;关注Java技术栈的朋友应该都知道#xff0c;switch 在 JDK 12 中进行增强了#xff0c;并且在 JDK 12/13 中一直是预览特性#xff0c;刚出来的时…Java14栈长我还有机会吗栈长必须有今天说下switch关注Java技术栈的朋友应该都知道switch 在 JDK 12 中进行增强了并且在 JDK 12/13 中一直是预览特性刚出来的时候栈长也第一时间对 switch 特性进行了分享Java 12 骚操作 switch居然还能这样玩现在随着 JDK 14 的发布switch已经成为标准特性了意外的是对 JDK 12 又进行了一些调整和增强现在我们来看 Java 14 中的 switch 怎么玩吧。本文是 Java 14 新特性的第 4 篇教程也是对 JDK 12 switch 那篇的增强和修订Java 14 switchJava 14 switch 有以下几点特色1、箭头表达式箭头语法 -类似 Java 8 中的 Lambda 表达式先来定义一个枚举类public enum Status {OPEN, INIT, PROCESS, PENDING, CLOSE;
}
传统的写法private static void test(Status status) {int result 0;switch (status) {case OPEN:result 1;break;case PROCESS:result 2;break;case PENDING:result 2;break;case CLOSE:result 3;break;default:throw new RuntimeException(状态不正确);}System.out.println(result is result);
}
Java 14 后可以这样用private static void test(Status status) {var result switch (status) {case OPEN - 1;case PROCESS, PENDING - 2;case CLOSE - 3;default - throw new RuntimeException(状态不正确);};System.out.println(result is result);
}
可以在 switch 语句块中返回值给一个变量不是必须多个 case 条件可以写在一行用逗号分开并且可以省略 break 关键字。2、yield 关键字yield 用来返回值并跳出当前 switch 语句块来看下面的示例private static void test(Integer value) {int number switch (value) {case 3:System.out.println(3);yield 3;case 5:System.out.println(5);yield 5;default:System.out.println(default);yield 0;};System.out.println(number);
}
示例中每个 case 都带了一个 yield 关键字返回值也可以结合箭头表达式同时使用private static void test(Status status) {var result switch (status) {case OPEN - 1;case PROCESS, PENDING - 2;case CLOSE - {System.out.println(closed);yield 3;}default - throw new RuntimeException(状态不正确);};System.out.println(result is result);
}
示例代码看了都懂吧是不是很骚背后的秘密背后的秘密是什么呢反编译上面那个例子的字节码再看下private static void test(Status status) {byte var10000;switch(status) {case OPEN:var10000 1;break;case PROCESS:case PENDING:var10000 2;break;case CLOSE:System.out.println(closed);var10000 3;break;default:throw new RuntimeException(状态不正确);}int result var10000;System.out.println(result is result);
}
可以看到全部是传统写法了原来又是一个语法糖。好了今天的分享就到这收藏转发一下吧虽然现在 JDK 8 是主流但多学习了解不是坏事日后必定有用想学习更多的 Java 8 ~ 14 系列新特性教程请关注Java技术栈搜索阅读。