switch表達(dá)式增強(qiáng),終于可以不寫(xiě)break了!
面對(duì)這樣的if語(yǔ)句,你是不是很難受呢?
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來(lái)改進(jìn)一下?
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");
}
舒服了嗎?
是不是感覺(jué)還是不那么舒服呢?
試試Java 14中對(duì)Switch表達(dá)式的增強(qiáng)功能,繼續(xù)改造:
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表達(dá)式增強(qiáng)中,引入了對(duì)Lambda語(yǔ)法的支持,讓每個(gè)case分支變得更為簡(jiǎn)潔。同時(shí),容易遺忘的break也可以省略了。
Tips:這里的JEP 361特性,經(jīng)歷了JDK 12、JDK 13兩個(gè)預(yù)覽版本之后才在JDK 14中定稿,所以部分功能在JDK 12和JDK 13中也會(huì)看到,但真正使用,還是建議在JDK 14之后的版本中應(yīng)用。
好了,今天的分享就到這里!關(guān)于Java新特性這個(gè)專題,我正在連載Java新特性專欄:https://www.didispace.com/java-features/,文檔形式看Java新特性,閱讀學(xué)習(xí)體驗(yàn)更佳!
推薦閱讀
你好,我是程序猿DD,10年開(kāi)發(fā)老司機(jī)、阿里云MVP、騰訊云TVP、出過(guò)書(shū)創(chuàng)過(guò)業(yè)、國(guó)企4年互聯(lián)網(wǎng)6年。從普通開(kāi)發(fā)到架構(gòu)師、再到合伙人。一路過(guò)來(lái),給我最深的感受就是一定要不斷學(xué)習(xí)并關(guān)注前沿。只要你能堅(jiān)持下來(lái),多思考、少抱怨、勤動(dòng)手,就很容易實(shí)現(xiàn)彎道超車!所以,不要問(wèn)我現(xiàn)在干什么是否來(lái)得及。如果你看好一個(gè)事情,一定是堅(jiān)持了才能看到希望,而不是看到希望才去堅(jiān)持。相信我,只要堅(jiān)持下來(lái),你一定比現(xiàn)在更好!如果你還沒(méi)什么方向,可以先關(guān)注我,這里會(huì)經(jīng)常分享一些前沿資訊,幫你積累彎道超車的資本。
