使用lambda编程之延迟执行
使用lambda表达式的主要原因是,将代码的执行延迟到一个合适的时间点。 所有的lambda表达式都是延迟执行的。毕竟,如果你希望立即执行一段代码,那就没有必要使用lambda表达式了。延迟执行代码的原因有很多,例如: 在另一个线程中运行代码 logger.info(“x:”+x+”,y:”+y); 如果日志级别设置为忽略INFO消息时,该字符串会被计算并传递给info方法,然后再确定是否真的要执行。为什么不能再确定需要打印时,再将字符串合并起来呢? 只有再需要的时候才运行代码,这是使用lambda表达式的一种情况。惯用的方法式将这段代码包装成一个无参数的lambda表达式:()->”x:”+x+”,y:”+y。 封装成一个方法,来执行延迟记录日志就是下面这样了。 public static void info(Logger logger,Supplier<String> messge) { if(logger.isLoggable(Level.INFO)) { logger.info(messge.get()); } } Supplier<String> 作为参数,可以传递一个lambda表达式。 当然也可以直接写 logger.info(()->”x:”+x+”,y:”+y); 这样用。 ?原文出自:https://www.fastmeteor.com/2017/12/20/使用lambda编程之延迟执行 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- VHDL中的可变长度std_logic_vector初始化
- java.util.Arrays中的私有静态类ArrayList – 为
- java – 如何在不停止mediarecorder的情况下更改
- java – 我可以将List转换为Map>没有foreach吗?
- 我如何说服GroovyShell维护eval()调用的状态?
- java中 利用正则表达式提取( )内内容
- jbas015852无法索引类java.lang.IllegalStateExc
- jsp页面中获取servlet请求中的参数的办法详解
- Java字符串常用操作方法及代码
- java – 如何访问传递给CompletableFuture allOf