亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

六盘水市| 海丰县| 青浦区| 阆中市| 渭源县| 云安县| 苗栗县| 刚察县| 香港| 玛纳斯县| 北海市| 根河市| 民勤县| 大余县| 宣化县| 新泰市| 盐池县| 西林县| 嘉黎县| 津南区| 利辛县| 衡阳市| 蓬安县| 阿图什市| 孝昌县| 平顺县| 丰都县| 黑水县| 丹寨县| 新津县| 舒兰市| 莎车县| 奉节县| 定远县| 尼勒克县| 汨罗市| 蛟河市| 会东县| 玉田县| 德江县| 巧家县|