jdk8中Optional類的用法

2021-10-07 02:04:24 字數 1808 閱讀 8689

從字面意思理解它的意思是可選擇的。optional是jdk8**現的,對於判斷null有非常好的用法,它是乙個容器類,代表乙個值是存在還是不存在,之前我們用null來表示乙個值是否存在,現在我們可以用它來更清楚的表示。

我們首先看下它有哪些常用的方法。

public

final

class

optional

private

optional

(t value)

public

static

optional

of(t value)

public

static

optional

ofnullable

(t value)

public t get()

return value;

}public

boolean

ispresent()

public

void

ifpresent

(consumer<

?super t> consumer)

public optional

filter

(predicate<

?super t> predicate)

public

optional

map(function<

?super t,

?extendsu}

public

optional

flatmap

(function<

?super t, optional

}public t orelse

(t other)

public t orelseget

(supplier<

?extends

t> other)

public

throwable

> t orelsethrow

(supplier<

?extends

x> exceptionsupplier)

throws x

else

}

這是它的方法,我們講幾個比較常用的

public

static

void

main

(string[

] args)

列印結果

我是optional物件例項yipeng.shen.testservice.lambda.person@2fc14f68

我是乙個空optional例項optional.empty

我不為null++

++++

++++

+++optional[yipeng.shen.testservice.lambda.person@19dfb72a

]我為null所以建立乙個空例項++

++++

++++

+++optional.empty

true

yipeng.shen.testservice.lambda.person@2fc14f68

true

false

yipeng.shen.testservice.lambda.person@17c68925我是原始值我的名字為張三

yipeng.shen.testservice.lambda.person@7e0ea639我是新建立的預設值我的名字為李四

張三王五

JDK8中Optional的方法使用

1.optional.of 或者optional.ofnullable 建立optional物件,差別在於of不允許引數是null,而ofnullable則無限制。test public void testoptional 2.ispresent 判斷值是否存在 ispresent判斷值是否存在 s...

JDK8新特性筆記(二) Optional

例子 public class optionaldemo01 else 執行結果 ps2optional chapter1.optional demo.person 12a3a380 optinal物件不為空 chapter1.optional demo.person 12a3a380 0 null...

jdk8新特性 Optional物件的了解使用

獲取optional物件 轉換optional值 過濾值除了轉換值之外,optional也提供了過濾值的方法filter filter 接受乙個 predicate 引數,如果測試結果為true,返回測試結果為 true 對應的值。如果測試結果為 false,會返回乙個空的 optional。opt...