Java 14中對switch的增強,終於可以不寫break了
面對這樣的if
語句,你是不是很難受呢?
java
if (flag == 1) {
log.info("didispace.com: 1");
} else if (flag == 2) {
log.info("didispace.com: 2");
} else if (flag == 3) {
log.info("didispace.com: 3");
} else if (flag == 4) {
log.info("didispace.com: 4");
} else {
log.info("didispace.com: x");
}
是不是想到用switch
來改進一下?
java
switch(flag) {
case 1:
log.info("didispace.com: 1");
break;
case 2:
log.info("didispace.com: 2");
break;
case 3:
log.info("didispace.com: 3");
break;
case 4:
log.info("didispace.com: 4");
break;
default:
log.info("didispace.com: x");
}
舒服了嗎?是不是感覺還是不那麼舒服呢?
試試Java 14中對Switch表示式的增強功能,繼續改造:
java
switch(flag) {
case 1 -> log.info("didispace.com: 1");
case 2 -> log.info("didispace.com: 2");
case 3 -> log.info("didispace.com: 3");
case 4 -> log.info("didispace.com: 4");
default -> log.info("didispace.com: x");
}
這下是不是舒服了?在Java 14的switch表示式增強中,引入了對Lambda語法的支援,讓每個case分支變得更為簡潔。同時,容易遺忘的break
也可以省略了。
Tips:這裡的JEP 361特性,經歷了JDK 12、JDK 13兩個預覽版本之後才在JDK 14中定稿,所以部分功能在JDK 12和JDK 13中也會看到,但真正使用,還是建議在JDK 14之後的版本中應用。
好了,今天的分享就到這裡!如果您學習過程中如遇困難?可以加入我們超高質量的技術交流群,參與交流與討論,更好的學習與進步!另外,不要走開,關注我!持續更新Java新特性專欄!
歡迎關注我的公眾號:程式猿DD。第一時間瞭解前沿行業訊息、分享深度技術乾貨、獲取優質學習資源
- Spring官方釋出新成員:Spring GraphQL
- 再見了,我的散裝研發管理平臺;再見了,4臺ECS!
- 淘寶驚現GitHub“愛國套餐”,其實是刷Star
- 求求你們,別再刷 Star 了!這跟“愛國”沒關係!
- 重磅!Spring Cloud 生態再添新套件:Spring Cloud Tencent
- 免申請直接用上 IDEA 新 UI,只需要這三步配置
- 如何設定IntelliJ IDEA的記憶體和啟動引數
- spring-configuration-metadata.json檔案是做啥的?
- JetBrains IDE全新UI預覽版來了,要做簡潔與強大兼顧的IDE
- 注意:Spring Boot 2.7開始spring.factories不推薦使用了,接下來這麼玩...
- Spring Boot整合Swagger時PatternsRequestCondition.getPatterns()報錯:"this.condition" is null
- Spring Boot Starter配置spring.factories的自動生成神器:mica-auto
- Stream.toList()和Collectors.toList()的效能比較
- Java Stream轉List的幾種方法
- Java中如何快捷的建立不可變集合
- 一文學會Java的互動式程式設計環境jshell
- Gitee倉庫開源要稽核為什麼被噴?
- Java 15 新特性:隱藏類
- Java 17 新特性:switch的模式匹配(Preview)
- Java 16 新特性:record類