Lambda表达式

简介:

什么是 Lambda 表达式
● 文献中把 Lambda 表达式一般称作匿名函数,语法为 (参数部分) -> 表达式部分
● 它本质上是一个函数对象
● 它可以用在那些需要将行为参数化的场景,例如 Stream API,MyBatisPlus 的 QueryWrapper 等地方
Lambda 与匿名内部类有何异同
● 它们都可以用于需要行为参数化的场景
● Lambda 表达式必须配合函数式接口使用,而匿名内部类不必拘泥于函数式接口,其它接口和抽象类也可以
● Lambda 表达式比匿名内部类语法上更加简洁
● 匿名内部类是在编译阶段由程序员编写提供,而 Lambda 表达式是在运行阶段动态生成它所需的类
● 【进阶】Lambda 中 this 含义与匿名内部类中的 this 不同

8、反射及泛型
8.1 反射
什么是反射
● 反射是 java 提供的一套 API,通过这套 API 能够在运行期间
○ 根据类名加载类
○ 获取类的各种信息,如类有哪些属性、哪些方法、实现了哪些接口 ...
○ 类型参数化,根据类型创建对象
○ 方法、属性参数化,以统一的方式来使用方法和属性
● 反射广泛应用于各种框架实现,例如
○ Spring 中的 bean 对象创建、依赖注入
○ JUnit 单元测试方法的执行
○ MyBatis 映射查询结果到 java 对象
○ ...
● 反射在带来巨大灵活性的同时也不是没有缺点,那就是反射调用效率会受一定影响

8.2 泛型

相关文章
|
2月前
|
存储 关系型数据库 MySQL
|
2月前
|
存储 NoSQL Linux
|
2月前
|
SQL 运维 分布式计算
如何做好SQL质量监控
Cloud Native 在 SLS 中,用户可以通过 SQL 对日志数据(结构化、半结构化、无结构化)进行查询和分析。随着用户对 SQL 使用程度的不断加深,越来越多的用户希望了解自己使用 SQL 分析时的服务反馈(如请求量、成功率、数据量等等),以便对数据和分析行为进行精细管理或优化治理。 “现在我这个 Project 的 SQL 并发是多少?” “奇怪,我 SQL 请求并不多,为什么会有这么多 SQL 请求,是哪个业务线(Logstore)用的?” “我想了解我在 SLS 中使用 SQL 分析的整体情况,请问有什么监控数据或日志可以查看? 这些都是来自 SLS 真实用户的声音,可以看出用
|
2月前
|
Java 测试技术 Linux
生产环境发布管理
在一个大型团队中,生产发布是一件复杂的事情,从dev(前后端联调)-->test(测试集成&压力测试)-->pre(灰度测试)-->prod(生产环境)的多环境推进,以及生产环境的热更新、回滚等问题一直在困扰着各个公司,今天我将基于公司的自动化部署平台为大家讲解下我们是如何做到多环境部署。
|
2月前
|
SQL 运维 分布式计算
|
2月前
|
运维 Devops 开发工具
生产环境缺陷管理
在一个大型团队中,bug协同管理是一件复杂的事情,发布经理要追版本bug,运维同学要评估bug影响范围,开发同学要在多个开发分支同时修复同一个bug,很容易出现bug漏提交、漏确认等生产安全问题。 本团队也出现过一起不同分支漏提交bugfix导致的一起P1故障(最高等级),该bug在生产环境进行hotfix时,漏掉了少量集群导致该二次故障。举个相似的例子,某品牌汽车发现潜在安全隐患进行召回,但却遗漏了某个小地区,偏偏在遗漏的地区,发生了安全事故导致有人员伤亡。 我们基于go-git开发实现了通用化的git-poison,通过分布式源码管理bug追溯、查询,可复制性高,适用于所有git仓库,与分
|
2月前
|
Java 测试技术 Linux
生产环境发布管理
在一个大型团队中,生产发布是一件复杂的事情,从dev(前后端联调)-->test(测试集成&压力测试)-->pre(灰度测试)-->prod(生产环境)的多环境推进,以及生产环境的热更新、回滚等问题一直在困扰着各个公司,今天我将基于公司的自动化部署平台为大家讲解下我们是如何做到多环境部署。