• 技术文章 >java >java基础

    java懒惰评估如何实现

    小妮浅浅小妮浅浅2021-08-04 10:31:04原创4818

    说明

    1、惰性评估是将表达式的评估延迟到需要时才进行的过程。Java是严格的立即赋值评估。

    2、可以使用lambda表达式和高阶函数将其重写为延迟评估的版本。

    实例

    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的?会懒惰计算表达式,因此仅执行所需的方法
            return (add ? onAdd.apply(t) : onMultiply.apply(t));
        }
    }

    以上就是java懒惰评估的实现,希望对大家有所帮助。更多Java学习指路:Java基础

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java懒惰评估
    上一篇:java循环和递归的区别 下一篇:java如何自定义函数式接口

    相关文章推荐

    • Java runnable和callable的异同• java sleep()和wait()的区别• Java用户线程是什么• java守护线程的注意事项• java守护线程的执行优先级• java泛型类的使用语法• java泛型接口的使用注意• java方法参数中通配符的使用• java网络编程的三要素• java UDP通信的原理• java中UDP如何发送数据• java中UDP接收数据的步骤• java中TCP通信是什么• java中并发和并行的概念• java start()和run()的区别• java中使用全局变量终止线程• java yield()和sleep()的区别• java setPriority()设置优先级

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网