最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA Optional類用法分享

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

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

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

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

Optional類中包含兩個屬性:

類屬性:EMPTY 對象屬性:value

EMPTY屬性用來存放一個value為null的Optional對象。
value屬性用來存放非null對象。

Optional方法

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

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

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

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

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

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對象;否則返回一個空的Optional對象
map Function<? super T, ? extends U> Optional<U> 如果值存在,就對該值執(zhí)行提供的mapping函數(shù)調(diào)用,返回Optional<U>對象
flatMap Function<? super T, Optional<U>> Optional<U> 如果值存在,就對該值執(zhí)行提供的mapping函數(shù)調(diào)用,返回非null Optional對象
orElse T T 如果有值則將其返回,否則返回一個默認(rèn)值
orElseGet Supplier<? extends T> T 如果有值則將其返回,否則返回一個由指定的Supplier接口生成的值
orElseThrow Supplier<? extends X> <X extends Throwable> 如果有值則將其返回,否則拋出一個由指定的Supplier接口生成的異常

相關(guān)文章

  • 詳解Java中的內(nèi)存屏障

    詳解Java中的內(nèi)存屏障

    這篇文章主要介紹了Java中的內(nèi)存屏障的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-05-05
  • SpringBoot2.0 ZipKin示例代碼

    SpringBoot2.0 ZipKin示例代碼

    這篇文章主要介紹了SpringBoot2.0 ZipKin示例代碼,詳細(xì)的介紹了什么是ZipKin以及SpringBoot2.0 ZipKin示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • JAVA格式化時間日期的簡單實(shí)例

    JAVA格式化時間日期的簡單實(shí)例

    這篇文章主要介紹了JAVA格式化時間日期的簡單實(shí)例,有需要的朋友可以參考一下
    2013-11-11
  • SpringBoot2零基礎(chǔ)到精通之映射與常用注解請求處理

    SpringBoot2零基礎(chǔ)到精通之映射與常用注解請求處理

    SpringBoot是一種整合Spring技術(shù)棧的方式(或者說是框架),同時也是簡化Spring的一種快速開發(fā)的腳手架,本篇讓我們一起學(xué)習(xí)映射、常用注解和方法參數(shù)的小技巧
    2022-03-03
  • Java ForkJoin框架的原理及用法

    Java ForkJoin框架的原理及用法

    這篇文章主要介紹了Java ForkJoin框架的原理及用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • 詳解SpringCloud Gateway 2020.0.2最新版

    詳解SpringCloud Gateway 2020.0.2最新版

    這篇文章主要介紹了SpringCloud Gateway 2020.0.2最新版,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • spring Data jpa簡介_動力節(jié)點(diǎn)Java學(xué)院整理

    spring Data jpa簡介_動力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了spring Data jpa簡介的相關(guān)資料,需要的朋友可以參考下
    2017-09-09
  • SpringBoot HikariCP連接池監(jiān)控實(shí)現(xiàn)方案

    SpringBoot HikariCP連接池監(jiān)控實(shí)現(xiàn)方案

    文章介紹了五種監(jiān)控SpringBoot應(yīng)用程序中HikariCP連接池狀態(tài)和性能的工具和技術(shù),包括SpringBootActuator、Micrometer、Prometheus+Grafana、HikariCP自帶的Metrics以及NewRelic/Datadog等第三方服務(wù),每種方法都有其特點(diǎn)和配置步驟
    2025-01-01
  • java聯(lián)系人管理系統(tǒng)簡單設(shè)計

    java聯(lián)系人管理系統(tǒng)簡單設(shè)計

    這篇文章主要為大家詳細(xì)介紹了java聯(lián)系人管理系統(tǒng)簡單設(shè)計,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 使用springmvc參數(shù)接收boolean類型參數(shù)的問題

    使用springmvc參數(shù)接收boolean類型參數(shù)的問題

    這篇文章主要介紹了使用springmvc參數(shù)接收boolean類型參數(shù)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評論

屏山县| 竹北市| 大关县| 石家庄市| 富平县| 自治县| 内乡县| 榆社县| 民权县| 格尔木市| 玉林市| 台南市| 凤台县| 崇文区| 江津市| 楚雄市| 丹东市| 穆棱市| 瑞安市| 资源县| 梅州市| 宣威市| 靖西县| 阿图什市| 乐清市| 涟水县| 怀宁县| 南和县| 康平县| 巴里| 昔阳县| 满城县| 周至县| 乌什县| 若尔盖县| 昌都县| 丹棱县| 南安市| 化德县| 贵德县| 泌阳县|