成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

Optional

Tamic / 2624人閱讀

摘要:存在即返回?zé)o則提供默認(rèn)值而不是存在即返回?zé)o則由函數(shù)來(lái)產(chǎn)生而不要存在才對(duì)它做點(diǎn)什么而不要如下多個(gè)級(jí)聯(lián)間自動(dòng)加非空校驗(yàn)之前每一級(jí)調(diào)用的展開(kāi)都需要放一個(gè)值的判斷。注更應(yīng)該被視為一個(gè)私有方法。

三種構(gòu)造方式:?Optional.of(obj)、Optional.ofNullable(obj)?、Optional.empty()。

//存在即返回, 無(wú)則提供默認(rèn)值
return?user.orElse(null);??//而不是?return?user.isPresent()???user.get()?:?null;

//存在即返回, 無(wú)則由函數(shù)來(lái)產(chǎn)生
return?user.orElseGet(()?->?fetchUser());?//而不要?return?user.isPresent()???user:?fetchUser();

//存在才對(duì)它做點(diǎn)什么
user.ifPresent(System.out::println);
//而不要如下
if?(user.isPresent())?{
??System.out.println(user.get());
}

//多個(gè)級(jí)聯(lián)間自動(dòng)加非空校驗(yàn)
return?Optional.of(new User())
            .map(User::getName)
            .map(String::toUpperCase)
            .orElse("zyf");
//Java8之前, 每一級(jí)調(diào)用的展開(kāi)都需要放一個(gè) null 值的判斷。
User?user?=?.....
if(user?!=?null)?{
??String?name?=?user.getUsername();
??if(name?!=?null)?{
????return?name.toUpperCase();
??}?else?{
????return?null;
??}
}?else?{
??return?null;
}

//orElseThrow
Optional num = Optional.of(1);
num
    .filter(s -> s < 0)
    .orElseThrow(() -> new RuntimeException("zyf"));

注:
Optional.isPresent()?更應(yīng)該被視為一個(gè)私有方法。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/67262.html

相關(guān)文章

  • Java8新特性之Optional

    摘要:上一篇小樂(lè)帶大家了解了新特性之,接下來(lái)將會(huì)繼續(xù)述說(shuō)新特性之類(lèi)是一個(gè)容器類(lèi),代表一個(gè)值存在或不存在,原來(lái)用表示一個(gè)值不存在,現(xiàn)在可以更好的表達(dá)這個(gè)概念。并且可以避免空指針異常。如果有值則將其返回,否則拋出。隱士地其中進(jìn)行了判斷。 上一篇小樂(lè)帶大家了解了Java8新特性之Stream,接下來(lái)將會(huì)繼續(xù)述說(shuō)Java新特性之Optional showImg(https://segmentfaul...

    stackfing 評(píng)論0 收藏0
  • Java Optional API

    摘要:于是,在引入了,用來(lái)代表一種可能有可能沒(méi)有的數(shù)據(jù),可以用來(lái)緩解空指針異常的問(wèn)題。 一位智者說(shuō)過(guò),沒(méi)有處理過(guò)空指針異常就不算一個(gè)真正的 Java 程序員。這當(dāng)然是開(kāi)玩笑,但是空指針異常確實(shí)是很多程序出錯(cuò)的源頭。于是,在 Java 8 引入了 java.util.Optional,Optional 用來(lái)代表一種 可能有可能沒(méi)有 的數(shù)據(jù),可以用來(lái)緩解空指針異常的問(wèn)題。 簡(jiǎn)單地說(shuō),Option...

    YorkChen 評(píng)論0 收藏0
  • Java中的Optional類(lèi)

    摘要:工具類(lèi)基本概念類(lèi)的使用對(duì)象創(chuàng)建常用方法基本概念類(lèi)是一個(gè)可以為的容器對(duì)象可以保存指定類(lèi)型的值也可以只保存要么有值要么為中提供很多方法來(lái)避免顯式的進(jìn)行空值檢查如果值存在則調(diào)用方法會(huì)返回調(diào)用方法就會(huì)返回這個(gè)對(duì)象類(lèi)是一個(gè)沒(méi)有子類(lèi)的 ...

    JerryC 評(píng)論0 收藏0
  • 【修煉內(nèi)功】[Java8] 使用Optional的正確姿勢(shì)及序列化問(wèn)題

    摘要:本文已收錄修煉內(nèi)功躍遷之路的為解決空的問(wèn)題帶來(lái)了很多新思路,查看源碼,實(shí)現(xiàn)非常簡(jiǎn)單,邏輯也并不復(fù)雜。 本文已收錄【修煉內(nèi)功】躍遷之路 showImg(https://segmentfault.com/img/bVbrCvp?w=852&h=480); Java8的Optional為解決空的問(wèn)題帶來(lái)了很多新思路,查看Optional源碼,實(shí)現(xiàn)非常簡(jiǎn)單,邏輯也并不復(fù)雜。Stuart Ma...

    Ajian 評(píng)論0 收藏0
  • 《java 8 實(shí)戰(zhàn)》讀書(shū)筆記 -第十章 用Optional取代null

    摘要:但返回的是一個(gè)類(lèi)型的對(duì)象,這意味著操作的結(jié)果是一個(gè)類(lèi)型的對(duì)象。反之,如果對(duì)象存在,這次調(diào)用就會(huì)將其作為函數(shù)的輸入,并按照與方法的約定返回一個(gè)對(duì)象。 一、Optional 類(lèi)入門(mén) Java 8中引入了一個(gè)新的類(lèi)java.util.Optional。變量存在時(shí),Optional類(lèi)只是對(duì)類(lèi)簡(jiǎn)單封裝。變量不存在時(shí),缺失的值會(huì)被建模成一個(gè)空的Optional對(duì)象,由方法Optional.empt...

    時(shí)飛 評(píng)論0 收藏0
  • Java8(5):使用 Optional 處理 null

    摘要:與方法的區(qū)別在于,方法傳入的參數(shù)為一個(gè)接口的實(shí)現(xiàn)當(dāng)中有值的時(shí)候,返回值當(dāng)中沒(méi)有值的時(shí)候,返回從該獲得的值。為的用戶(hù)沒(méi)有找到舉一個(gè)的用途在的控制器中,我們可以配置統(tǒng)一處理各種異常。 寫(xiě)過(guò) Java 程序的同學(xué),一般都遇到過(guò) NullPointerException :) —— 為了不拋出這個(gè)異常,我們便會(huì)寫(xiě)如下的代碼: User user = getUserById(id); if (u...

    liuchengxu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<