体验Lambda的更优写法

使用Lambda必然需要一个函数式接口:

package com.learn.demo02.Lambda;@FunctionalInterface
public interface MessageBuilder {//定义一个拼接消息的抽象方法,返回被拼接的消息public abstract String builderMessage();
}

然后对log 方法进行改造:

package com.learn.demo02.Lambda;
/*使用Lambda优化日志案例Lambda的特点:延迟加载Lambda的使用前提,必须存在函数式接口*/
public class Demo02Lambda {//定义一个显示日志的方法,方法的参数传递日志的等级和MessageBuilder接口public static void showLog(int level, MessageBuilder mb){//对日志的等级进行判断,如果是1级,则调用MessageBuilder接口中的builderMessage方法if(level==1){System.out.println(mb.builderMessage());}}public static void main(String[] args) {//定义三个日志信息String msg1 = "Hello";String msg2 = "World";String msg3 = "Java";//调用showLog方法,参数MessageBuilder是一个函数式接口,所以可以传递Lambda表达式/*showLog(2,()->{//返回一个拼接好的字符串return  msg1+msg2+msg3;});*//*使用Lambda表达式作为参数传递,仅仅是把参数传递到showLog方法中只有满足条件,日志的等级是1级才会调用接口MessageBuilder中的方法builderMessage才会进行字符串的拼接如果条件不满足,日志的等级不是1级那么MessageBuilder接口中的方法builderMessage也不会执行所以拼接字符串的代码也不会执行所以不会存在性能的浪费*/showLog(1,()->{System.out.println("不满足条件不执行");//返回一个拼接好的字符串return  msg1+msg2+msg3;});}
}

从结果中可以看出,在不符合级别要求的情况下,Lambda将不会执行。从而达到节省性能的效果。

扩展:实际上使用内部类也可以达到同样的效果,只是将代码操作延迟到了另外一个对象当中通过调用方法来完成。而是否调用其所在方法是在条件判断之后才执行的。

使用Lambda优化日志案例相关推荐

  1. Impala内存优化实战案例

    Impala内存优化实战案例 李珂 畅游DT时代 2016-03-25 文章来源:中国联通网研院网优网管部--IT技术研究团队 作者:李珂 一. 引言 Hadoop生态中的NoSQL数据分析三剑客Hi ...

  2. C# 10 新特性 —— Lambda 优化

    C# 10 新特性 -- Lambda 优化 Intro C# 10 对于 Lambda 做了很多的优化,我们可以在 C# 中更加方便地使用委托和 Lambda 了,下面就来看一些示例 Lambda ...

  3. dataguru北京线下沙龙-第二部 《Oracle 索引优化思路--案例分享 -- 刘盛》

    [视频:dataguru北京线下沙龙-第二部 <Oracle 索引优化思路--案例分享 -- 刘盛> /微笑]

  4. aws lambda_如何为AWS Lambda实施日志聚合

    aws lambda by Yan Cui 崔燕 如何为AWS Lambda实施日志聚合 (How to implement log aggregation for AWS Lambda) Dur­i ...

  5. c++ using 前置声明_每日优鲜前置仓模式的配货优化方案案例介绍

    大渔导读:2019 年零售业供应链最佳实践大奖--银奖 基于每日优鲜前置仓模式的配货优化方案案例:1. 背景介绍:  每日优鲜成立于 2014 年 11 月,是专注于优质生鲜的移动电商,已在北上广深等 ...

  6. oracle 最大值及其_学习笔记:Oracle优化 SQL查询最大值 最小值时的优化方法案例...

    天萃荷净 select max(id),min(id) from table优化,分享开发DBA需求,在SQL语句查询最大值.最小值数据时的优化方式案例 1.查看数据库版本 SQL> selec ...

  7. 小水管也要有尊严 网络限速优化实际案例

    小水管也要有尊严 网络限速优化实际案例 http://network.51cto.com  2010-11-29 09:37  阿九  51CTO.com  我要评论(29) 作为一名企业网络管理员, ...

  8. 如何评估ASO优化方案案例推广效果,优化aso方案

    ASO是什么?中文意思是应用商店优化,优化的是APP在应用商店中的各项因素,提升APP在应用商店中的搜索排名及榜单表现,从而获得更多的曝光和下载.从本质上讲,ASO是一项非常依赖应用商店的推广方式,熟 ...

  9. java log日志函数_Java 中的 AWS Lambda 函数日志记录 - AWS Lambda

    AWS 文档中描述的 AWS 服务或功能可能因区域而异.要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门. 本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. Ja ...

最新文章

  1. Java实战应用50篇(二)-SSM框架中的设计模式:动态代理
  2. python递归实例_python实现递归实例代码
  3. javaweb框架--自定义标签与freemaker结合
  4. 【SSH网上商城项目实战08】查询和删除商品类别功能的实现
  5. 深入理解原型和原型链
  6. 免费开源!仿微信仿陌陌类APP源代码整项目开源,包括ADT项..
  7. 联考事业单位计算机类面试,2018年5.26事业单位联考E类常见面试题(上)
  8. CPC客户端报错 error
  9. gps高斯utm_UTM坐标系统与高斯
  10. cadence/allegro文件不能双击直接打开解决办法
  11. 下一代 TGW 从13Mpps到50Mpps性能优化之旅
  12. SQL注入原理及联合查询
  13. ArcGIS10试用体验之安装篇
  14. CSS3小猪佩奇社会猪
  15. 护眼灯真的可以保护眼睛吗?推荐五款达到护眼级别的灯
  16. 大数据必学Java基础(一):Java体系结构、特性和优势
  17. 惯性导航的定位原理是什么?
  18. Python3 通过 suds 访问 webservice
  19. 从1.0到2.0:移动互联网入口战升级
  20. uboot中ftd命令

热门文章

  1. 线程阻塞和挂起(网络收集)
  2. 《构建之法》 读书笔记(3)
  3. 关于《红泰昌 TC-2015B》严重漏电说明!
  4. 三层设计模式初步分离
  5. 【抓包工具】Wireshark(详细介绍与TCP三次握手数据分析)
  6. 【学习笔记】第五章 python3核心技术与实践--字典和集合
  7. mysql学习-初识mysql
  8. Oracle收购云安全创企Palerra,以加强安全堆栈
  9. nyoj 寻找最大数
  10. no nlsxbe in java.library.path