2019-08-25 Optional

findAny()

返回處理最快的一個(gè),xxList 如果確定查出來就一個(gè)

xxList.stream.map(Student::getId()).findAny();

大概就是這樣? 這樣返回的是一個(gè)Optional的對象? 比如Optional<Integer> id = 上面的

optional的好處就是?

解決了npe的一點(diǎn)點(diǎn)問題查不出來 也不影響好像

也就是說就算返回是空 這個(gè)optional也能接得住 Optional允許我們返回一個(gè)null對象

常用的方法 isPresent() get()檢查其包含的對象時(shí)候?yàn)榭栈蛘卟皇?/p>

這個(gè)Optional對象 就是中間商 讓它作為中間的人 用它接收 用它作為入?yún)魅?可以免去 很多人工的if判斷

ifPresent()

返回的是void 就是對嘟點(diǎn)之前的Optional對象進(jìn)行判斷 如果有值 就進(jìn)入到里面進(jìn)行蘭布達(dá)計(jì)算 如果沒有值就跳過

沒有值會拋出nosuchelementException

List list =new ArrayList<>();

list.add("a");

list.add("b");

list.add("c");

Optional l = list.stream().filter(x->x.startsWith("d")).findAny();

try {

System.out.println(l.get());

}catch (NoSuchElementException e ){

System.out.println("沒有找到");

}

傳入的是a就會打印a ; 如果啊傳入的是d 就會打印沒有找到


打印AADFD

orElse

如果optional是一個(gè)空值 需要返回一個(gè)默認(rèn)的值的 時(shí)候? 這是可以用orElse()方法?

當(dāng)optional值不存在時(shí),調(diào)用orElse()返回orElse()的參數(shù),如果optional的值存在時(shí)返回optional的值

orElseGet

optional為空時(shí),里面可以調(diào)用 函數(shù)? 然后返回 自己需要的值

當(dāng)optional值不存在時(shí),調(diào)用orElseGet()中接口調(diào)用的返回值,如果optional的值存在時(shí)返回optional的值

StringnullValue =null;

Stringoptional = Optional.ofNullable(nullValue).orElse("Su");?

?System.out.println(optional); //su

StringoptionalGet = Optional.ofNullable(nullValue).orElseGet(() ->"Xiao");?

?System.out.println(optionalGet);? //xiao

StringnonNullOptional = Optional.ofNullable("Susan").orElse("Su");?

?System.out.println(nonNullOptional);// susan

StringnonNullOptionalGet = Optional.ofNullable("Molly").orElseGet(() ->"Xiao"); System.out.println(nonNullOptionalGet);//molly


orElseThrow

決定自己要拋出 什么樣的異常

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容