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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java8根据某个id删选_Java 8可选:如何使用它

發(fā)布時(shí)間:2023/12/3 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java8根据某个id删选_Java 8可选:如何使用它 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java8根據(jù)某個(gè)id刪選

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

什么是可選類型?

可選的是新容器類型,如果有可用值,則該容器類型將包裝單個(gè)值。 因此,這意味著要傳達(dá)可能缺少該值的含義。 以這種方法為例:

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

返回Optional顯式增加了該給定的社會(huì)保險(xiǎn)號(hào)可能沒有客戶的可能性。

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

呼叫者將必須執(zhí)行以下操作:

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

否則,請(qǐng)?zhí)峁┠J(rèn)值:

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

可選的用法有點(diǎn)類似于拋出檢查異常的更熟悉的情況。 通過拋出一個(gè)已檢查的異常,我們使用編譯器來(lái)強(qiáng)制API的調(diào)用者以某種方式處理異常情況。

可選試圖解決什么?

可選的方法是嘗試通過增加構(gòu)建更具表現(xiàn)力的API的可能性來(lái)減少Java系統(tǒng)中空指針異常的數(shù)量,這些API解釋了有時(shí)缺少返回值的可能性。

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

那么應(yīng)該如何使用Optional?

可選應(yīng)該用作可能不返回值的函數(shù)的返回類型

這是來(lái)自O(shè)penJDK郵件列表的報(bào)價(jià) :

“ JSR-335 EG相當(dāng)強(qiáng)烈地認(rèn)為,“可選”的使用不應(yīng)超過僅支持“可選-返回”慣用語(yǔ)所需要的數(shù)量。

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

在域驅(qū)動(dòng)程序開發(fā)的上下文中,這意味著Optional應(yīng)該用作某些服務(wù),存儲(chǔ)庫(kù)或?qū)嵱贸绦蚍椒ǖ姆祷仡愋?#xff0c;例如上面顯示的方法。

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

可選并不意味著是一種避免所有類型的空指針的機(jī)制。 例如,仍然必須測(cè)試方法和構(gòu)造函數(shù)的強(qiáng)制輸入?yún)?shù)。

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

該方法的調(diào)用者仍然必須檢查該方法的javadoc以了解缺少的Optional的含義,以便對(duì)其進(jìn)行正確處理。

同樣,可以將被檢查的異常捕獲在一個(gè)空塊中,這也沒有類似的方法阻止調(diào)用方調(diào)用get()并繼續(xù)前進(jìn)。

僅返回null有什么問題?

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

這經(jīng)常發(fā)生,并且是空指針異常的主要原因之一,盡管不是唯一的原因。

如何不使用可選?

可選不打算在這些情況下使用,因?yàn)樗粫?huì)給我們帶來(lái)任何好處:

  • 在域模型層(不可序列化)
  • 在DTO中(相同原因)
  • 在方法的輸入?yún)?shù)中
  • 在構(gòu)造函數(shù)參數(shù)中

Optional對(duì)函數(shù)式編程有何幫助?

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

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

有用的鏈接

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

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

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

java8根據(jù)某個(gè)id刪選

總結(jié)

以上是生活随笔為你收集整理的java8根据某个id删选_Java 8可选:如何使用它的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 毛片网页 | 精品精品视频 | 国产强被迫伦姧在线观看无码 | 91成人福利在线 | 日本中文字幕在线视频 | 拍摄av现场失控高潮数次 | 9色视频| 午夜影院在线观看视频 | 免费精品在线观看 | 亚洲精品9999 | 久久久999久久久 | 久久男人av | 亚洲乱码久久 | 日本一区不卡在线观看 | 成人免费黄色网 | 免费在线一区二区 | 伊人网大香| 久久天天躁狠狠躁夜夜躁2014 | 欧美人与性动交g欧美精器 国产在线视频91 | 狠狠躁夜夜躁人 | 日韩黄色免费观看 | 日韩网 | 精品人妻少妇嫩草av无码 | 欧美多人猛交狂配 | 这里只有精品22 | 成人免费毛片入口 | 人人干人人玩 | 一级生活毛片 | 99re这里只有精品66 | 日韩免费网站 | 国产无遮挡免费观看视频网站 | 天天干天天摸天天操 | 含羞草一区二区 | 91精品国产乱码在线观看 | 国产精品字幕 | 97se在线视频| 丁香婷婷亚洲 | 欧美另类视频在线观看 | 天天天av| 中文文字幕一区二区三三 | 国内精品在线观看视频 | 黄色不打码视频 | 在线亚洲免费 | 国产视频在线观看一区二区 | 激情久久久久久久 | 国产大片中文字幕 | 国产不卡精品 | 中文字幕日韩久久 | 朝桐光av在线一区二区三区 | 国产精品爽爽爽 | 看黄色小视频 | 国产盗摄精品一区二区酒店 | 国产福利小视频在线 | 中文字幕岛国 | 日韩久久中文字幕 | 亚洲综合久久av | 免费黄色网页 | 日本护士╳╳╳hd少妇 | 精品亚洲一区二区 | 青青草小视频 | 日韩av影视大全 | 高h校园不许穿内裤h调教 | 中文字幕乱码一二三区 | 欧美熟妇精品一区二区蜜桃视频 | 天天躁夜夜操 | 在线观看国产亚洲 | 可以在线观看av的网站 | 国产福利一区在线 | 国产精品久久久久久白浆 | avwww| 88久久精品无码一区二区毛片 | 国产精品一区二区av | 国产免费不卡av | 奇米色777 | 日韩久久精品电影 | 国产精品视频无码 | 国产欧美三级 | 午夜视频大全 | 日本在线有码 | 超鹏在线视频 | 日本一区二区三区免费电影 | 国产精品1区2区 | 久久全国免费视频 | 国产精品海角社区 | 国产在线a视频 | 色呦呦| 爱爱综合 | 99热在线观看精品 | 大尺度做爰呻吟舌吻情头 | 爱射综合 | 成人av在线看 | av一级黄色 | 成人动态视频 | 在线观看免费中文字幕 | aaa级片| 欧美精品免费一区二区 | 欧美一区二区福利视频 | 好男人www社区在线视频夜恋 | 国产乱码久久久久久 |