您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Java 8中java.util.Optional如何使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Optional 主要用來判斷是否為空,在Optional之前,我們只要使用StringUtils的工具類來判斷傳入的參數是否為空。現在我們可以使用 Optional 來替代它了。
Optional.of(Object object):入參object不能為空,否則會拋出空指針異常。它最終調用的是Objects.requireNonNull方法。
1 2 3 4 5 |
|
Optional.ofNullable(Object object):入參object可以為空,如果object不為空,就創建一個Optional實例;如果object為空就返回一個static fainal的Option對象,注意這里不會新建Option實例,而是使用一個static final的實例EMPTY,這里比較有意思的是泛型的問題,例如我需要兩個Optional對象,類型分別是String和Integer。
1 2 |
|
類型不同又如何保證返回同一個對象呢?直接看ofNullable的源碼,發現會調用empty方法:
1 2 3 4 5 |
|
原來是通過強制轉換實現的,再看EMPTY對象:
1 |
|
Optional.empty():就是上面分析Optional.ofNullable的時候用到的empty方法,直接返回一個static final的實例EMPTY;
Optional.of()方法的用法有點像斷言,對象為空的時候代表著某種業務上不可接受的異常,需要盡早處理,并且業務拒絕執行,這種場景下可以使用Optional.of;
下面來一起看一個例子。
User 實體類代碼如下:
1 2 3 4 5 6 7 8 9 10 11 |
|
用Optional來避免空異常問題。
1 2 3 4 5 6 |
|
orElse方法可以指定一個value為空時的返回對象,如果這個對象需要調用方法才能獲取(例如我們拿不到DEFAULT對象,要通過getDefault()方法才能拿到),這是就需要orElseGet方法來達到目的,如下:
1 2 3 4 5 6 7 8 9 |
|
上述就是小編為大家分享的Java 8中java.util.Optional如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。