欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA Optional類用法分享

 更新時(shí)間:2017年12月12日 15:31:02   投稿:laozhang  
本篇文章主要給大家分析了JAVA中Optional類用法以及代碼分析,跟著小編學(xué)習(xí)下吧。

Optional在JAVA中被定義為一個(gè)容器類,更確切的說只存一個(gè)元素的容器。

container object which may or may not contain a non-null value.

Optional類結(jié)構(gòu) Optional屬性

Optional類中包含兩個(gè)屬性:

類屬性:EMPTY 對(duì)象屬性:value

EMPTY屬性用來存放一個(gè)value為null的Optional對(duì)象。
value屬性用來存放非null對(duì)象。

Optional方法

Optional的有兩個(gè)構(gòu)造方法,都被private修飾。

private Optional() {
  this.value = null;
}
private Optional(T value) {
  this.value = Objects.requireNonNull(value);
}

無參構(gòu)造方法用來初始化EMPTY。有參構(gòu)造方法用來初始化非null對(duì)象。

因?yàn)闃?gòu)造方法被修飾為私有的,Optional想要實(shí)例化對(duì)象只能通過類方法調(diào)用。Optional提供三個(gè)類方法。

empty:返回value為null的Optional對(duì)象 of:返回value非null的Optional對(duì)象 ofNullable:value的值根據(jù)參數(shù)是否為null返回對(duì)應(yīng)的Optional對(duì)象

public static<T> Optional<T> empty() {
  Optional<T> t = (Optional<T>) EMPTY;
  return t;
}

public static <T> Optional<T> of(T value) {
  return new Optional<>(value);
}

public static <T> Optional<T> ofNullable(T value) {
  return value == null ? empty() : of(value);
}

實(shí)例方法介紹

方法 參數(shù)類型 返回類型 說明
get T value為null拋出NoSuchElementException異常
isPresent boolean value為null則返回false
ifPresent Consumer<? super T> void 如果Optional實(shí)例有值則為其調(diào)用consumer,否則不做處理
filter Predicate<? super T> Optional<T> 如果值存在并且滿足提供的謂詞,就返回包括該值的Optional對(duì)象;否則返回一個(gè)空的Optional對(duì)象
map Function<? super T, ? extends U> Optional<U> 如果值存在,就對(duì)該值執(zhí)行提供的mapping函數(shù)調(diào)用,返回Optional<U>對(duì)象
flatMap Function<? super T, Optional<U>> Optional<U> 如果值存在,就對(duì)該值執(zhí)行提供的mapping函數(shù)調(diào)用,返回非null Optional對(duì)象
orElse T T 如果有值則將其返回,否則返回一個(gè)默認(rèn)值
orElseGet Supplier<? extends T> T 如果有值則將其返回,否則返回一個(gè)由指定的Supplier接口生成的值
orElseThrow Supplier<? extends X> <X extends Throwable> 如果有值則將其返回,否則拋出一個(gè)由指定的Supplier接口生成的異常

相關(guān)文章

  • Mybatis引入與使用的圖文步驟

    Mybatis引入與使用的圖文步驟

    本文主要介紹了Mybatis引入與使用的圖文步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • 一文教你如何通過三級(jí)緩存解決Spring循環(huán)依賴

    一文教你如何通過三級(jí)緩存解決Spring循環(huán)依賴

    這篇文章主要介紹了如何通過三級(jí)緩存解決?Spring?循環(huán)依賴,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-07-07
  • IE8+SpringMVC文件上傳防止JSON下載

    IE8+SpringMVC文件上傳防止JSON下載

    這篇文章主要介紹了IE8+SpringMVC文件上傳防止JSON下載的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Java優(yōu)化for循環(huán)嵌套的高效率方法

    Java優(yōu)化for循環(huán)嵌套的高效率方法

    這篇文章主要介紹了Java優(yōu)化for循環(huán)嵌套的高效率方法,幫助大家更好的提升java程序性能,感興趣的朋友可以了解下
    2020-09-09
  • 入門到精通Java?SSO單點(diǎn)登錄原理詳解

    入門到精通Java?SSO單點(diǎn)登錄原理詳解

    這篇文章主要介紹了入門到精通Java?SSO單點(diǎn)登錄原理詳解,本文主要對(duì)SSO單點(diǎn)登錄與CAS、OAuth2.0兩種授權(quán)協(xié)議的關(guān)系和原理進(jìn)行詳細(xì)說明
    2022-09-09
  • Java中的while循環(huán)語句詳細(xì)講解

    Java中的while循環(huán)語句詳細(xì)講解

    這篇文章主要給大家介紹了關(guān)于Java中while循環(huán)語句的相關(guān)資料,while循環(huán)是一種在編程中常見的控制流語句,它允許代碼在特定條件下(通常是一個(gè)布爾表達(dá)式)重復(fù)執(zhí)行一段代碼,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • Nacos客戶端本地緩存和故障轉(zhuǎn)移方式

    Nacos客戶端本地緩存和故障轉(zhuǎn)移方式

    Nacos客戶端在從Server獲得服務(wù)時(shí),若出現(xiàn)故障,會(huì)通過ServiceInfoHolder和FailoverReactor進(jìn)行故障轉(zhuǎn)移,ServiceInfoHolder緩存服務(wù)信息,FailoverReactor處理故障轉(zhuǎn)移,包括開啟故障轉(zhuǎn)移開關(guān)、讀取備份文件等
    2024-12-12
  • SpringBootWeb?入門了解?Swagger?的具體使用

    SpringBootWeb?入門了解?Swagger?的具體使用

    這篇文章主要介紹了SpringBootWeb?入門了解?Swagger?的具體使用,Swagger?框架可以根據(jù)已經(jīng)實(shí)現(xiàn)的方法或者類,通過頁(yè)面的方式直觀清晰的查看或者進(jìn)行測(cè)試該方法,需要的朋友可以參考下
    2024-08-08
  • 解讀@RequestBody的正確使用方法

    解讀@RequestBody的正確使用方法

    這篇文章主要介紹了解讀@RequestBody的正確使用方法,具有一定借鑒價(jià)值
    2018-01-01
  • IDEA中application.properties的圖標(biāo)顯示不正常的問題及解決方法

    IDEA中application.properties的圖標(biāo)顯示不正常的問題及解決方法

    這篇文章主要介紹了IDEA中application.properties的圖標(biāo)顯示不正常的問題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04

最新評(píng)論