当前位置: 首页 > news >正文

电商型企业网站建设/济南seo全网营销

电商型企业网站建设,济南seo全网营销,网页登录界面制作,个人静态网页学生作业Java14:栈长,我还有机会吗? 栈长:必须有!今天说下switch! 关注Java技术栈公众号的朋友应该都知道,switch 在 JDK 12 中进行增强了,并且在 JDK 12/13 中一直是预览特性,…

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 switch

Java 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技术栈,在公众号后台回复:java,我写了一大堆教程了,都是干货。

关注公众号Java技术栈回复"面试"获取我整理的2020最全面试题及答案。

推荐去我的博客:

1.Java JVM、集合、多线程、新特性系列教程

2.Spring MVC、Spring Boot、Spring Cloud 系列教程

3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程

4.Java、后端、架构、阿里巴巴等大厂最新面试题

觉得不错,别忘了点赞+转发哦!

最后,关注下面的栈长的微信公众号:Java技术栈,回复:福利,可以免费获取一份我整理的 2020 最新 Java 面试题,真的非常全(含答案),无任何套路。

http://www.lbrq.cn/news/1298647.html

相关文章:

  • 做网站有前景吗/泰安seo推广
  • 山东房和城乡建设厅网站首页/网络推广工具
  • 苏州网站建设布局/seo产品是什么意思
  • 长沙知名网站/网络营销推广渠道有哪些
  • 大连模板做网站/建立自己的网站
  • 建立网站一般包括什么等方式/网站建设推广服务
  • 企业网站开发实训目的/电商平台推广方案
  • cms做网站不用后端/中国互联网协会
  • 东莞品托网站建设/济南网络推广公司电话
  • 广告交流群/北京网络seo推广公司
  • 北京计算机培训机构排名前十/太原优化排名推广
  • 杭州关键词排名提升/国外seo网站
  • 网站退出率是什么意思/百度一下搜索一下
  • 网站建设与管理资料下载/山东网络优化公司排名
  • 传销公司做网站运营/软文形式推广产品
  • 广州网络建站/网站建设高端公司
  • 搜索不到的网站/做网站
  • 网站产品管理模块/seo工资待遇 seo工资多少
  • 延安网站建设/seo是指什么职位
  • 网站如何改字体/市场营销案例100例
  • 做网站要准备的资料/营销策略是什么意思
  • 百度网站建设是什么意思/衡水今日头条新闻
  • 网站建设怎么做网站/站长工具官网
  • 网站建设与推广是什么/免费推广网站大全下载
  • 自贡网站建设/seo的优化方向
  • 做网站公司 营销/网站排名优化怎样做
  • 工商服务平台/太原seo优化公司
  • 做设计必看十大网站/seo自动优化软件
  • 网站建设 目的 意义 政策/厦门seo新站策划
  • axure怎么做网站原型/下载百度2024最新版
  • 小明记账簿焕新记:从单色到多彩的主题进化之路
  • Kubernetes常用命令总结
  • undefined reference to ‘end‘
  • 如何为“地方升学导向型”语校建模?Prompt 框架下的宇都宫日建工科专门学校解析(7 / 500)
  • Git 团队协作完全指南:从基础到高级应用
  • 让管理软件回归简单实用:软件定制开发之道