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 泛型

相关文章
|
22小时前
|
存储 关系型数据库 MySQL
|
22小时前
|
存储 安全 Java
|
22小时前
|
Java 应用服务中间件 Linux
|
22小时前
|
Java
|
22小时前
|
存储 算法 Java
|
22小时前
|
存储 消息中间件 开发框架
应用架构图
在上一节有了业务架构的基础之上,当我们需要落地具体的技术方案时,此时就需要技术人员开始考虑技术架构了。技术架构是应接应用架构的技术需求,并根据识别的技术需求,进行技术选项,把各个关键技术和技术之间的关系描述清楚。 基础结构解决的主要问题包括:如何进行技术层面的分层、开发框架的选择、开发语言的选择、涉及非功能性需求的技术选择。由于应用架构体系是分层的,那么对应的技术架构体系自然也是分层的。大的分层有微服务架构分层模型,小的则是单个应用的技术分层框架。大的技术体系考虑清楚后,剩下问题就是根据实际业务考虑选择具体的技术点。各个技术点的分析、方案选择,最终形成关键技术清单,关键技术清单应考虑架构本身的
|
22小时前
|
Java
|
22小时前
|
存储 安全 Java