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

java懶惰評估實現方法

 更新時間:2021年05月14日 09:02:09   作者:小妮淺淺  
這篇文章主要介紹了java懶惰評估如何實現的相關內容及實例,有興趣的朋友們可以學習參考下。

1、說明

惰性評估是將表達式的評估延遲到需要時才進行的過程。Java是嚴格的立即賦值評估。

可以使用lambda表達式和高階函數將其重寫為延遲評估的版本。

2、實例

public class LazySample {
    public static void main(String[] args) {
        //這是一個lambda表達式,表現為閉包
        UnaryOperator<Integer> add = t -> {
            System.out.println("executing add");
            return t + t;
        };
      //這是一個lambda表達式,表現為閉包
        UnaryOperator<Integer> multiply = t -> {
            System.out.println("executing multiply");
            return t * t;
        };
        //傳遞Lambda閉包而不是普通函數
        System.out.println(addOrMultiply(true, add, multiply, 4));
        System.out.println(addOrMultiply(false, add, multiply, 4));
    }
 
    //這是一個高階函數
    static <T, R> R addOrMultiply(
            boolean add, Function<T, R> onAdd,
            Function<T, R> onMultiply, T t
    ) {
        // Java的?會懶惰計算表達式,因此僅執(zhí)行所需的方法
        return (add ? onAdd.apply(t) : onMultiply.apply(t));
    }
}

實例擴展:

public class SingleLock<V> implements Lazy<V> {
 
    private Callable<V> codeBlock;
    private V value;
 
    public SingleLock(Callable<V> codeBlock) {
        this.codeBlock = codeBlock;
    }
 
    @Override
    public synchronized V get() {
        if (value == null) {
            setValue();
        }
        return value;
    }
 
    private void setValue() {
        try {
            value = codeBlock.call();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
 
 
}

到此這篇關于java懶惰評估實現方法的文章就介紹到這了,更多相關java懶惰評估如何實現內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • maven三個常用的插件使用介紹

    maven三個常用的插件使用介紹

    大家好,本篇文章主要講的是maven三個常用的插件使用介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • springboot+jersey+tomcat實現跨域方式上傳文件到服務器的方式

    springboot+jersey+tomcat實現跨域方式上傳文件到服務器的方式

    這篇文章主要介紹了springboot+jersey+tomcat實現跨域方式上傳文件到服務器,本文結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • java并發(fā)編程專題(四)----淺談(JUC)Lock鎖

    java并發(fā)編程專題(四)----淺談(JUC)Lock鎖

    這篇文章主要介紹了java并發(fā)編程(JUC)Lock鎖的相關內容,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • SpringBoot集成JWT的工具類與攔截器實現方式

    SpringBoot集成JWT的工具類與攔截器實現方式

    這篇文章主要介紹了SpringBoot集成JWT的工具類與攔截器實現方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java Socket使用加密協(xié)議進行傳輸對象的方法

    Java Socket使用加密協(xié)議進行傳輸對象的方法

    這篇文章主要介紹了Java Socket使用加密協(xié)議進行傳輸對象的方法,結合實例形式分析了java socket加密協(xié)議相關接口與類的調用方法,以及服務器、客戶端實現技巧,需要的朋友可以參考下
    2017-06-06
  • SpringMVC+ZTree實現樹形菜單權限配置的方法

    SpringMVC+ZTree實現樹形菜單權限配置的方法

    本篇文章主要介紹了SpringMVC+ZTree實現樹形菜單權限配置的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • 淺談java里的EL表達式在JSP中不能解析的問題

    淺談java里的EL表達式在JSP中不能解析的問題

    下面小編就為大家?guī)硪黄獪\談java里的EL表達式在JSP中不能解析的問題。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 在maven中引入本地jar包的步驟

    在maven中引入本地jar包的步驟

    這篇文章主要介紹了在maven中引入本地jar包的步驟,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下
    2021-04-04
  • Java?shiro安全框架使用介紹

    Java?shiro安全框架使用介紹

    安全管理是軟件系統(tǒng)必不可少的的功能。根據經典的“墨菲定律”——凡是可能,總會發(fā)生。如果系統(tǒng)存在安全隱患,最終必然會出現問題,這篇文章主要介紹了SpringBoot安全管理Shiro框架的使用
    2022-08-08
  • java實現翻轉單詞順序列

    java實現翻轉單詞順序列

    這篇文章主要為大家詳細介紹了java實現翻轉單詞順序列,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03

最新評論