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

java中orElse和orElseGet方法區(qū)別小結(jié)

 更新時(shí)間:2023年10月26日 11:00:39   作者:翟鳳璽  
這篇文章主要給大家介紹了關(guān)于java中orElse和orElseGet方法區(qū)別的相關(guān)資料,兩者之間的區(qū)別細(xì)微,但是卻在某些場景下顯的很重要,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

orElse 和 orElseGet 是 Optional 類的兩個(gè)方法,用于處理可能為空的值。

orElse()

當(dāng)optional值不存在時(shí),調(diào)用orElse()返回orElse()的參數(shù),如果optional的值存在時(shí)返回optional的值

orElseGet()

當(dāng)optional值不存在時(shí),調(diào)用orElseGet()中接口調(diào)用的返回值,如果optional的值存在時(shí)返回optional的值,例子如下:

import java.util.Optional;

public class Main {
    public static void main(String[] args){
        String nullValue = null;
        String optional = Optional.ofNullable(nullValue).orElse("Su");
        System.out.println(optional);
        String optionalGet = Optional.ofNullable(nullValue).orElseGet(() -> "Xiao");
        System.out.println(optionalGet);
        String nonNullOptional = Optional.ofNullable("Susan").orElse("Su");
        System.out.println(nonNullOptional);
        String nonNullOptionalGet = Optional.ofNullable("Molly").orElseGet(() -> "Xiao");
        System.out.println(nonNullOptionalGet);
    }
}

結(jié)果:

Su
Xiao
Susan
Molly

區(qū)別

  • orElse 方法:
  • orElse 方法接受一個(gè)默認(rèn)值作為參數(shù),并在 Optional 對(duì)象為空時(shí)返回該默認(rèn)值。
  • 無論 Optional 對(duì)象是否為空,orElse 方法都會(huì)執(zhí)行默認(rèn)值的計(jì)算。
  • 示例:
Optional<String> value = Optional.ofNullable(someValue); 
String result = value.orElse("default");
  • orElseGet 方法:
  • orElseGet 方法接受一個(gè) Supplier 函數(shù)式接口作為參數(shù),并在 Optional 對(duì)象為空時(shí)調(diào)用該函數(shù)式接口獲取默認(rèn)值。
  • 只有在 Optional 對(duì)象為空時(shí),orElseGet 方法才會(huì)執(zhí)行默認(rèn)值的計(jì)算。
  • 示例:
Optional<String> value = Optional.ofNullable(someValue); 
String result = value.orElseGet(() -> computeDefaultValue());

總結(jié)

  • orElse 方法總是會(huì)計(jì)算默認(rèn)值,無論 Optional 對(duì)象是否為空。
  • orElseGet 方法只有在 Optional 對(duì)象為空時(shí)才會(huì)計(jì)算默認(rèn)值,可以通過 Supplier 函數(shù)式接口提供延遲計(jì)算的能力。
  • 在使用時(shí),根據(jù)具體需求選擇適合的方法。如果默認(rèn)值的計(jì)算是簡單的常量或已經(jīng)存在的值,可以使用 orElse 方法。如果默認(rèn)值的計(jì)算涉及復(fù)雜的邏輯或需要延遲計(jì)算,可以使用 orElseGet 方法。

到此這篇關(guān)于java中orElse和orElseGet方法區(qū)別的文章就介紹到這了,更多相關(guān)java orElse和orElseGet區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • java編譯時(shí)與運(yùn)行時(shí)概念與實(shí)例詳解

    java編譯時(shí)與運(yùn)行時(shí)概念與實(shí)例詳解

    本篇文章通過實(shí)例對(duì) java程序編譯時(shí)與運(yùn)行時(shí)進(jìn)行了詳解,需要的朋友可以參考下
    2017-04-04
  • Java設(shè)計(jì)模式之備忘錄模式(Memento模式)介紹

    Java設(shè)計(jì)模式之備忘錄模式(Memento模式)介紹

    這篇文章主要介紹了Java設(shè)計(jì)模式之備忘錄模式(Memento模式)介紹,memento是一個(gè)保存另外一個(gè)對(duì)象內(nèi)部狀態(tài)拷貝的對(duì)象,這樣以后就可以將該對(duì)象恢復(fù)到原先保存的狀態(tài),需要的朋友可以參考下
    2015-03-03
  • Spring boot+VUE實(shí)現(xiàn)token驗(yàn)證的示例代碼

    Spring boot+VUE實(shí)現(xiàn)token驗(yàn)證的示例代碼

    本文詳細(xì)介紹了使用Vue和SpringBoot實(shí)現(xiàn)token認(rèn)證的方法,包括前后端交互流程、后端依賴導(dǎo)入、token工具類、攔截器、跨域處理、前端路由守衛(wèi)、請(qǐng)求攔截器等內(nèi)容,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-10-10
  • SpringBoot中使用@scheduled定時(shí)執(zhí)行任務(wù)的坑

    SpringBoot中使用@scheduled定時(shí)執(zhí)行任務(wù)的坑

    本文主要介紹了SpringBoot中使用@scheduled定時(shí)執(zhí)行任務(wù)的坑,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Spring Cloud Config Client超時(shí)及重試示例詳解

    Spring Cloud Config Client超時(shí)及重試示例詳解

    這篇文章主要給大家介紹了關(guān)于Spring Cloud Config Client超時(shí)及重試的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • Java 并發(fā)編程中的鎖機(jī)制示例詳解

    Java 并發(fā)編程中的鎖機(jī)制示例詳解

    本文探討了Java并發(fā)編程中的鎖機(jī)制,包括鎖的基本概念、Java中的鎖類型如synchronized、ReentrantLock、ReadWriteLock、鎖的優(yōu)化策略以及如何避免死鎖,文章強(qiáng)調(diào)了合理選擇和優(yōu)化鎖使用對(duì)于提升程序并發(fā)性能的重要性,并提供了實(shí)際應(yīng)用中的最佳實(shí)踐,感興趣的朋友一起看看吧
    2025-01-01
  • Java中ConcurrentHashMap是如何實(shí)現(xiàn)線程安全

    Java中ConcurrentHashMap是如何實(shí)現(xiàn)線程安全

    ConcurrentHashMap是一個(gè)哈希表,支持檢索的全并發(fā)和更新的高預(yù)期并發(fā)。本文主要介紹了Java中ConcurrentHashMap是如何實(shí)現(xiàn)線程安全,感興趣的可以了解一下
    2021-11-11
  • Java音頻處理之音頻流轉(zhuǎn)音頻文件和獲取音頻播放時(shí)長詳解

    Java音頻處理之音頻流轉(zhuǎn)音頻文件和獲取音頻播放時(shí)長詳解

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)音頻流轉(zhuǎn)音頻文件和獲取音頻播放時(shí)長功能,文中的示例代碼簡潔易懂,有需要的小伙伴可以了解下
    2025-07-07
  • Java中解決跨域問題的方法匯總(建議收藏)

    Java中解決跨域問題的方法匯總(建議收藏)

    我們?cè)陂_發(fā)過程中經(jīng)常會(huì)遇到前后端分離而導(dǎo)致的跨域問題,導(dǎo)致無法獲取返回結(jié)果,下面給大家介紹Java中解決跨域問題的方法匯總,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • zookeeper概述圖文詳解

    zookeeper概述圖文詳解

    今天小編就為大家分享一篇關(guān)于Zookeeper概述圖文詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評(píng)論

寿光市| 竹溪县| 滦南县| 宁阳县| 海安县| 大兴区| 巴塘县| 托里县| 岱山县| 永安市| 北辰区| 抚顺市| 高邮市| 龙泉市| 阿鲁科尔沁旗| 建瓯市| 邢台县| 深州市| 临湘市| 南宫市| 塔城市| 东源县| 贞丰县| 彰武县| 彰武县| 胶南市| 张家界市| 盐山县| 宣武区| 深水埗区| 获嘉县| 秦安县| 马龙县| 榆林市| 宁夏| 大英县| 同江市| 从化市| 行唐县| 海伦市| 绥宁县|