91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java8新特性Optinal的作用是什么

發布時間:2021-07-06 10:21:09 來源:億速云 閱讀:210 作者:chen 欄目:大數據

本篇內容主要講解“java8新特性Optinal的作用是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java8新特性Optinal的作用是什么”吧!

空指針異常可能占據了一半的異常發生率。于是oracle想用optional這類‘優雅的’解決null。想象挺美好,現實很殘酷。顯然optional并沒有使代碼變得那么優雅。看了七八篇大神的博客,不管從代碼量或者代碼思想上都沒有什么質的改變,你仍然要時刻擔心null的出現及給它相應的處理。如果你想統一處理還不如直接代碼try catch  空指針異常。在我發現它真正對代碼的改善前,暫且不推薦(不過阿里推薦,還是人家牛,聽阿里的吧)

更新------------------------------------------------------

本著求真務實的精神,今天更加詳細分析一下optional的使用方法。(根據實際開發,理論玩家無視)。

1,首先是構造方法 Optional.of(), Optional.ofNullable() ,Optional.empty()。

Optional.of():of方法在傳入的參數為null時,拋出空指針異常。許多博客都說要在確定參數不為null時使用。可要是確定參數不為null,為什么要用Optional。個人觀點,Optional,的所有方法中,可能會拋出空指針異常的,都違背了使用Optional的初衷。如get()方法。

Optional.empty():構造一個空值值 optional,非特殊情況無使用價值。默認就使用ofNullable()方法構造。

2,各方法的使用 

   ①isPresent() 根據是否為空返回boolean。一個挖坑又填坑的方法。直接判斷參數==null?不好嗎。

   ②ifPresent(Consumer)  在對象不為空時,執行Consumer(函數表達式),空時不執行。相當于if(obj==null){.....},的簡便寫法。你可能會說這也沒什么大用啊,我的硬盤又不在乎多一行代碼,再想寫個else都不行。這個。。。。你說的對。 但這已經是Optional中比較有用的方法了。

   ③get() 獲取optional中的值,空則拋出異常。前面說了,這個方法看不出來使用價值

   ④orElse(T other) 如果為空,用other替代。同樣可用一行if替代。但你可用來裝一下

   ⑤orElseThrow  如果為空拋出異常。不想評價它

   ⑥map   如果你從一個對象中想得到第若干層的子對象,每一層都要都要空值校驗如,Obj=obj1.get("obj2").get("obj3").get("obj4");上一個get方法返回的值為null時,下一個get方法執行時都會拋異常。于是就要寫若干層if。map則允許進行鏈式操作,在最后才處理null值。這是optional最值得使用的方法。

Optional.ofNullable(userEntity1).map(u -> u.getUsername())
           .map(name -> name.toUpperCase()).orElse(null);

到此,相信大家對“java8新特性Optinal的作用是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广汉市| 盖州市| 皮山县| 惠东县| 凤凰县| 时尚| 钟山县| 罗田县| 莲花县| 磐安县| 原平市| 南涧| 饶河县| 商水县| 肃北| 南丰县| 闽侯县| 天镇县| 平邑县| 炉霍县| 昂仁县| 平阳县| 偃师市| 贡山| 积石山| 伊宁县| 定州市| 鸡东县| 新津县| 吉木萨尔县| 沂南县| 卢湾区| 白沙| 康乐县| 陇川县| 临洮县| 太和县| 南宫市| 蓝山县| 洛宁县| 靖远县|