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

JAVA Optional類用法分享

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

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對象。

因為構(gòu)造方法被修飾為私有的,Optional想要實例化對象只能通過類方法調(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ù)類型 返回類型 說明
get T value為null拋出NoSuchElementException異常
isPresent boolean value為null則返回false
ifPresent Consumer<? super T> void 如果Optional實例有值則為其調(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 如果有值則將其返回,否則返回一個默認值
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)資料,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下
    2021-05-05
  • SpringBoot2.0 ZipKin示例代碼

    SpringBoot2.0 ZipKin示例代碼

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

    JAVA格式化時間日期的簡單實例

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

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

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

    Java ForkJoin框架的原理及用法

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

    詳解SpringCloud Gateway 2020.0.2最新版

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

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

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

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

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

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

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

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

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

最新評論

山丹县| 保康县| 察雅县| 望谟县| 南汇区| 大丰市| 二连浩特市| 南木林县| 龙口市| 福安市| 新乡市| 台中县| 乾安县| 长岛县| 孝义市| 曲阳县| 宁晋县| 石林| 苗栗县| 阳山县| 黄石市| 苏州市| 新兴县| 满洲里市| 崇阳县| 邵阳市| 黔西| 平原县| 兴宁市| 庄河市| 施甸县| 叶城县| 囊谦县| 电白县| 特克斯县| 黔东| 满洲里市| 巨野县| 西乡县| 弋阳县| 金乡县|