日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 8可选:如何使用它

發布時間:2023/12/3 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 8可选:如何使用它 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java 8帶有新的Optional類型,類似于其他語言中提供的類型。 這篇文章將介紹這種新類型的使用方式,即主要用途。

什么是可選類型?

可選的是新容器類型,如果有可用值,則該容器類型將包裝單個值。 因此,其含義是傳達可能不存在該值的含義。 以這種方法為例:

public Optional<Customer> findCustomerWithSSN(String ssn) {... }

返回Optional顯式增加了該給定的社會保險號可能沒有客戶的可能性。

這意味著類型系統明確地迫使該方法的調用者考慮并處理可能沒有使用該SSN的客戶的可能性。

呼叫者將必須執行以下操作:

Optional<Customer> optional = findCustomerWithSSN(ssn);if (optional.isPresent()) {Customer customer = maybeCustomer.get();... use customer ... } else {... deal with absence case ... }

否則,請提供默認值:

Long value = findOptionalLong(ssn).orElse(0L);

可選的用法有點類似于拋出檢查異常的更熟悉的情況。 通過拋出一個已檢查的異常,我們使用編譯器來強制API的調用者以某種方式處理異常情況。

可選試圖解決什么?

可選的方法是嘗試通過增加構建更具表現力的API的可能性來減少Java系統中空指針異常的數量,這些API解釋了有時缺少返回值的可能性。

如果從一開始就存在Optional,那么大多數庫和應用程序可能會更好地處理缺少的返回值,從而減少了空指針異常的數量以及總體上的錯誤總數。

那么應該如何使用Optional?

可選應該用作可能不返回值的函數的返回類型

這是來自OpenJDK郵件列表的報價 :

“ JSR-335 EG相當強烈地認為,“可選”的使用不應超過僅支持“可選-返回”慣用語所需的內容。

有人建議甚至將其重命名為OptionalReturn”

在域驅動程序開發的上下文中,這意味著Optional應該用作某些服務,存儲庫或實用程序方法的返回類型,例如上面顯示的方法。

什么是可選的,不嘗試解決

可選并不意味著是一種避免所有類型的空指針的機制。 例如,仍然必須測試方法和構造函數的強制輸入參數。

像使用null時一樣,Optional不能幫助傳達缺失值的含義 。 以類似的方式,null可能意味著許多不同的東西(找不到值等),因此缺少Optional值也可以。

該方法的調用者仍然必須檢查該方法的javadoc以了解缺少Optional的含義,以便正確處理它。

同樣,可以將被檢查的異常捕獲到一個空塊中,這也沒有阻止調用方調用get()并繼續前進的方式。

僅返回null有什么問題?

問題在于該函數的調用者可能沒有閱讀該方法的javadoc,而忘記了處理null的情況。

這經常發生,并且是空指針異常的主要原因之一,盡管不是唯一的原因。

如何不使用可選?

可選不打算在這些情況下使用,因為它不會給我們帶來任何好處:

  • 在域模型層中(不可序列化)
  • 在DTO中(相同原因)
  • 在方法的輸入參數中
  • 在構造函數參數中

Optional對函數式編程有何幫助?

在鏈接的函數調用中,Optional提供了ifPresent()方法,該方法允許鏈接可能不返回值的函數:

findCustomerWithSSN(ssn).ifPresent(() -> System.out.println("customer exists!"));

有用的鏈接

Oracle的這篇博客文章進一步介紹了Optional及其用法,并將其與其他語言的類似功能進行了比較– 厭倦了Null指針異常?

該備忘單提供了Optional – Java 8 Cheat Sheet中的Optional的全面概述。

翻譯自: https://www.javacodegeeks.com/2014/06/java-8-optional-how-to-use-it.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Java 8可选:如何使用它的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品无码一区二区三区 | 日韩欧美午夜 | 午夜一区二区视频 | 青娱乐av | 欧美亚洲色图视频 | 亚洲专区一区二区三区 | 麻豆影视在线 | 一区二区在线免费观看视频 | 国产精品欧美在线 | 午夜精品一区二区三区在线播放 | 国产一区2区 | 黄网站在线免费 | 免费激情网站 | 国产精品福利影院 | 色姑娘天天操 | 一区二区三区天堂 | 91久久婷婷 | 麻豆网站视频 | 久操国产 | 色女人天堂 | 成人黄色片免费 | 亚洲无卡视频 | 欧美一级片观看 | av官网| 高清视频在线播放 | 男生插女生网站 | 国产精品久久久久久亚洲调教 | 久久久久久免费毛片精品 | 欧美视频综合 | 欧美在线免费观看视频 | 91精品国产综合久久久久久 | 国产又粗又硬视频 | 无码无遮挡又大又爽又黄的视频 | 91精品播放 | 久久精品99国产精品日本 | 中文字幕日日 | 三级麻豆 | 黄色成人在线免费观看 | 温柔少妇的高潮呻吟 | 色偷偷网站 | 久草福利在线视频 | 天天干网| 涩涩五月天 | 综合网中文字幕 | 国产精品一区二区亚洲 | 激情无遮挡 | 亚洲一区二区自拍 | 日韩av在线看 | 国产精品国产三级国产aⅴ浪潮 | 亚洲国产高清在线 | 中文字幕色网 | 河北彩花av在线播放 | 婷婷综合色 | 亚洲最大在线视频 | 精品欧美一区二区三区免费观看 | 欧美一卡二卡在线 | 麻豆传媒网站在线观看 | japanese国产在线 | 欧美性猛交xxxx | 久久99精品久久久久久琪琪 | 国产精品对白刺激久久久 | 日本免费高清视频 | 欧美黑人精品一区二区不卡 | 精品综合久久 | 欧美三日本三级少妇三 | 色婷婷色婷婷 | 久久av免费看 | 亚洲精品少妇久久久久久 | 在线免费看av网站 | 怡红院一区 | 美女一级 | 99思思| 久青草资源福利视频 | 亚洲日本中文字幕在线 | 五月婷婷久久综合 | 欧美肉大捧一进一出免费视频 | 日韩av网站在线播放 | 伊人午夜 | 黄色片视频免费观看 | 男女做爰真人视频直播 | 亚洲成人黄色av | 四虎综合| 丰满人妻老熟妇伦人精品 | 99在线看 | 韩日成人| 免费看av软件 | 亚洲天堂五月天 | 你懂的在线免费观看 | 久久xxxx | 91精品国产一区二区无码 | 亚洲国产私拍精品国模在线观看 | 欧美做爰性生交视频 | 一区二区三区免费在线视频 | 精品国产一区二区三区在线 | 豆花av在线 | 精品久久久久久中文字幕 | 韩国毛片一区二区 | 午夜大片| 亚洲欧美校园春色 |