這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Java 8中java.util.Optional如何使用,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
10多年的滄縣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整滄縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“滄縣網(wǎng)站設(shè)計”,“滄縣網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
Optional 主要用來判斷是否為空,在Optional之前,我們只要使用StringUtils的工具類來判斷傳入的參數(shù)是否為空?,F(xiàn)在我們可以使用 Optional 來替代它了。
Optional.of(Object object):入?yún)bject不能為空,否則會拋出空指針異常。它最終調(diào)用的是Objects.requireNonNull方法。
1 2 3 4 5 |
|
Optional.ofNullable(Object object):入?yún)bject可以為空,如果object不為空,就創(chuàng)建一個Optional實(shí)例;如果object為空就返回一個static fainal的Option對象,注意這里不會新建Option實(shí)例,而是使用一個static final的實(shí)例EMPTY,這里比較有意思的是泛型的問題,例如我需要兩個Optional對象,類型分別是String和Integer。
1 2 |
|
類型不同又如何保證返回同一個對象呢?直接看ofNullable的源碼,發(fā)現(xiàn)會調(diào)用empty方法:
1 2 3 4 5 |
|
原來是通過強(qiáng)制轉(zhuǎn)換實(shí)現(xiàn)的,再看EMPTY對象:
1 |
|
Optional.empty():就是上面分析Optional.ofNullable的時候用到的empty方法,直接返回一個static final的實(shí)例EMPTY;
Optional.of()方法的用法有點(diǎn)像斷言,對象為空的時候代表著某種業(yè)務(wù)上不可接受的異常,需要盡早處理,并且業(yè)務(wù)拒絕執(zhí)行,這種場景下可以使用Optional.of;
下面來一起看一個例子。
User 實(shí)體類代碼如下:
1 2 3 4 5 6 7 8 9 10 11 |
|
用Optional來避免空異常問題。
1 2 3 4 5 6 |
|
orElse方法可以指定一個value為空時的返回對象,如果這個對象需要調(diào)用方法才能獲取(例如我們拿不到DEFAULT對象,要通過getDefault()方法才能拿到),這是就需要orElseGet方法來達(dá)到目的,如下:
1 2 3 4 5 6 7 8 9 |
|
上述就是小編為大家分享的Java 8中java.util.Optional如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。