• 技术文章 >java >java基础

    java懒惰评估如何实现

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

    说明

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

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

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    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学习网