面試官:Java8 lambda 表達式 forEach 如何提前終止?
1.情景展示


2.原因分析
break";continue";return",不僅強制結(jié)束for循環(huán)體,還會提前結(jié)束包含這個循環(huán)體的整個方法。forEach()中,"break"或"continue"是不被允許使用的,而return的意思也不是原來return代表的含義了。
forEach(),說到底是一個方法,而不是循環(huán)體,結(jié)束一個方法的執(zhí)行用什么?當(dāng)然是return啦;forEach()和JavaScript的forEach()用法是何其的相似,感興趣的可以去了解下(在文末)。3.解決方案
方案一:使用原始的foreach循環(huán)

Alt+/,就會出現(xiàn)foreach的代碼提示。


方案二:拋出異常
forEach()方法的目的。

forEach()方法體內(nèi)不能有其它代碼可能會拋出的異常與自己手動拋出并捕獲的異常一樣;推薦閱讀:
Spring Event,賊好用的業(yè)務(wù)解耦神器!
JWT 實現(xiàn)登錄認證 + Token 自動續(xù)期方案,這才是正確的使用姿勢!
互聯(lián)網(wǎng)初中高級大廠面試題(9個G) 內(nèi)容包含Java基礎(chǔ)、JavaWeb、MySQL性能優(yōu)化、JVM、鎖、百萬并發(fā)、消息隊列、高性能緩存、反射、Spring全家桶原理、微服務(wù)、Zookeeper......等技術(shù)棧!
?戳閱讀原文領(lǐng)?。?/span> 朕已閱
評論
圖片
表情


