java8新特性之Optional 的用法

2021-08-21 07:46:23 字數 1310 閱讀 2972

/**

* optional.of(t t) :

建立乙個

optional

例項* optional.empty() :

建立乙個空的

optional

例項* optional.ofnullable(t t) : 若t

不為null

建立optional例項,

否則建立空例項

* ispresent() :

判斷是否包含值

* orelse(t t) :

如果呼叫物件包含值

,就返回該值

,否則返回

t* orelseget(supplier s) :

如果物件呼叫物件包含值

,返回該值

,否則返回

s獲取的值

* map(function f) :

如果有值對其處理

,並返回處理後的

optional,

否則返回

optional.empty()

* flatmap(function f) :

與map類似,

要求返回值必須是

optional

*/@test

public void

test04()

@test

public void

test05()

@test

public void

test06()

optional1.orelse( "

空" );

object optional2 = optional.ofnullable( null )

/**如果optional.ofnullable( null )

裡面的引數為

null,

就執行orelse()*/

.orelse( "

沒有值" );

system.out

.println(optional2);

object o = optional.ofnullable( null )

/**如果optional.ofnullable( null )

裡面的引數為

null,

就執行orelseget() */

.orelseget( () -> new use( ) );

system.out

.println(o);

}@test

public void

test07()

java8新特性之介面定義增強

一 介面定義的增強 從jdk1.8開始允許在介面中定義普通方法,使用default和static關鍵字,跟在訪問修飾符之後,兩種的區別是,default定義的普通方法用物件呼叫,static定義的方法用介面名呼叫 inte ce ibook static void study class booki...

java8新特性之lambda表示式

lambda表示式需要支援函式式介面 介面中只有乙個抽象方法的介面 可以用 functionalinte ce註解修飾介面,這樣如果定義超過乙個抽象方法就會報錯 幾種格式 格式一 無引數,無返回值 system.out.println hello 格式二 有乙個引數,無返回值 x system.ou...

java8新特性之Stream 終止操作的多種方式

方法 簡述allmatch predicate p 檢查是否匹配所有元素 anymatch predicate 檢查是否至少匹配乙個元素 nonematch predicate p 檢查是否沒有匹配所有元素 findfirst 返回第乙個元素 findany 返回當前流中的任意元素 count 返回...