Optional類基本使用

2021-10-25 18:39:50 字數 1209 閱讀 8031

optional.

of(t t)

: 建立乙個 optional 例項,t必須非空;

optional.

empty()

: 建立乙個空的 optional 例項

optional.

ofnullable

(t t):t可以為null

boolean

ispresent()

: 判斷是否包含物件

void

ifpresent

(consumer<

?super t> consumer) :如果有值,就執行consumer介面的實現**,並且該值會作為引數傳給它。

t get()

: 如果呼叫物件包含值,返回該值,否則拋異常

t orelse

(t other) :如果有值則將其返回,否則返回指定的other物件。

t orelseget

(supplier<

?extends

t> other) :如果有值則將其返回,否則返回由supplier介面實現提供的物件。

t orelsethrow

(supplier<

?extends

x> exceptionsupplier) :如果有值則將其返回,否則丟擲由supplier介面實現提供的異常。(jdk10)

boolean

isempty()

: 判斷value是否為空 (jdk11)

ifpresentorelse

(consumer<

?super t> action, runnable emptyaction)

: value非空,執行引數1功能;如果value為空,執行引數2功能(jdk9)

optional

or(supplier<

?extends

optional

<

?extends

t>> supplier) : value非空,返回對應的optional;value為空,返回形參封裝的optional(jdk9)

stream

stream

() : value非空,返回僅包含此value的stream;否則,返回乙個空的stream(jdk9)

Optional工具類學習

對物件進行空判斷,之後進行一些列附加操作 多重判斷,操作之後返回新的物件 的優雅實現,避免了以往 不夠模組化 易讀性差等問題,其中大量使用objects工具類和函式式介面。類私有常量,多用於返回不含值的optional物件 private static final optional empty ne...

Optional 物件的使用

optional optional optional.of 必須為非空 optional.ofnullable 可以為空也可以為非空 optional.empty 引數包裝成null物件 例子一 returnoptional.of user optional.ispresent 如果值存在的話,進行...

Optional類的map和flatMap的區別

1.區別 map方法接受乙個對映函式引數,返回乙個被optional包裝的結果。若結果為空,則返回空optional。flatmap方法接受乙個返回值為optional的對映函式引數,該返回值亦是flatmap方法的返回值。若結果為空,則返回空optional。2.示例 2.1 準備類 public...