JDK8中Optional的方法使用

2021-09-25 09:10:46 字數 1005 閱讀 1324

1.optional.of()或者optional.ofnullable():建立optional物件,差別在於of不允許引數是null,而ofnullable則無限制。

@test

public void testoptional()

2.ispresent():判斷值是否存在

// ispresent判斷值是否存在

system.out.println(optional1.ispresent() == true);

system.out.println(optional2.ispresent() == false);

ispresent() 原始碼如下:

public boolean ispresent()
3.orelse和orelseget區別

如果optional物件儲存的值不是null,則返回原來的值,否則返回value。

orelseget(supplier supplier):功能與orelse一樣,只不過orelseget引數是乙個物件

//這個示例中,兩個 optional 物件都包含非空值,兩個方法都會返回對應的非空值。

// 不過,orelse() 方法仍然建立了 user 物件。

// 與之相反,orelseget() 方法不建立 user 物件。

@test

public void test1()

private user createnewuser()
4.map 的使用

@test

public void map()

5.flatmap() 也需要函式作為引數,並對值呼叫這個函式,然後直接返回結果。

@test

public void flatmap()

6.值過濾

/**

* 值過濾

*/@test

public void whenfilter_thenok()

jdk8中Optional類的用法

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

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...