Java 14中對switch的增強,終於可以不寫break了

語言: CN / TW / HK

面對這樣的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。第一時間瞭解前沿行業訊息、分享深度技術乾貨、獲取優質學習資源