Lamda表达式详解
Lamda表达式
1、λ 希腊字母表中排序第十一位的字母,英语名称为 Lamda
2、避免匿名内部类定义过多
3、可以让你的代码看起来很简洁
4、去掉了一堆没有意义的代码,留下核心的逻辑
3、其实质属于函数式编程的概念
(params)-> expression[表达式]
(params) -> statement[语句]
(params) -> {statements}
a -> System.out.println("i like lamda-->"+a)
new Thread (()->System.out.println(“多线程学习。。。。”)).start();
怎么理解
1、理解Functional interface(函数式接口)是学习java8 lamda表达式的关键所在。
2、函数式接口的定义:
- 任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。
public interface Runnable{public abstract void run();
}
- 对于函数式接口,我们可以通过lamda表达式来创建该接口的对象
代码推导λ表达式
package com.haiyang.lamda;public class TestLamda01 {//3、静态内部类,同样实现ILike接口static class Like2 implements ILike{@Overridepublic void lamda() {System.out.println("i like lamda2");}}public static void main(String[] args) {ILike like = new Like();like.lamda();like = new Like2();like.lamda();//4、局部内部类class Like3 implements ILike{@Overridepublic void lamda() {System.out.println("i like lamda3");}}like = new Like3();like.lamda();//5、匿名内部类,没有类的名称。必须借助接口或者父类like = new ILike() {@Overridepublic void lamda() {System.out.println("i like lamda4");}};like.lamda();//6、lamda表达式like = ()->{System.out.println("i like lamda5");};like.lamda();}
}//1、定义一个只有一个抽象方法的接口
interface ILike{abstract void lamda();
}//2、实现类
class Like implements ILike{@Overridepublic void lamda() {System.out.println("i like lamda1");}
}
输出:
带一个参数的Lamda简化
package com.haiyang.lamda;public class TestLamda02 {public static void main(String[] args) {ILive live = null;//Lamda简化live = (int a)->{System.out.println("I live you"+a);};live.live(1);//Lamda简化参数类型live = (a)->{System.out.println("I live you"+a);};live.live(2);//Lamda简化括号live = a->{System.out.println("I live you"+a);};live.live(3);//Lamda简化花括号(只有一条语句时)live = a->System.out.println("I live you"+a);live.live(4);}}interface ILive{abstract void live(int a);
}
输出:
带多个参数的Lamda简化
package com.haiyang.lamda;public class TestLamda02 {public static void main(String[] args) {ILive live = null;//Lamda简化live = (int a,int b)->{System.out.println("I live you"+a+b);};live.live(1,1);//Lamda简化参数类型(要去掉就要都去掉)live = (a,b)->{System.out.println("I live you"+a+b);};live.live(2,2);//Lamda简化花括号(只有一个语句时)live = (a,b)->System.out.println("I live you"+a+b);live.live(3,3);}}interface ILive{abstract void live(int a,int b);
}
输出:
Lamda表达式详解相关推荐
- java拉姆达表达式事例,Java Lambda表达式详解和实例
简介 Lambda表达式是Java SE 8中一个重要的新特性.lambda表达式允许你通过表达式来代替功能接口. lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体( ...
- java lambda表达式详解_Java8新特性Lambda表达式详解
课程目标: 通过本课程的学习,详细掌握Java8新特性之Lambda表达式: 适用人群:有Java基础的开发人员: 课程概述:从Java 8出现以来lambda是最重要的特性之一,它可以让我们用简洁流 ...
- cron表达式详解 Elastic-Job名次解释
#1.cron:cron表达式,用于配置作业触发时间 #2.shardingTotalCount:作业分片总数 #3.shardingItemParameters:分片序列号和参数用等号分隔,多个键值 ...
- SpringBoot使用AOP,PointCut表达式详解以及使用
SpringBoot使用AOP,PointCut表达式详解以及使用 1.相关注解 2.PointCut 表达式详解 2.1 execution: 2.1 within: 2.3. this: 2.4. ...
- pyzabbix 删除触发器_zabbix设置邮件报警, Zabbix常用Key值, zabbix触发器表达式详解, zabbix制作自己模板...
zabbix设置邮件报警 方法一:说明此方法,会产生中文乱码问题 第一步:首先安装mailx组件并配置好能够通过三方邮箱发送邮件 yum -y install mailx 然后编辑mailx的配置文件 ...
- Spring定时器corn表达式详解
1.结构 Spring定时器corn表达式详解 2.各字段的含义 字段 允许值 允许的特殊字符 秒 0~59 - * / 分 0~59 - * / 小时 0~23 - * / 日期 1~31 - * ...
- Cron表达式详解和表达式的验证
Cron表达式详解和表达式的验证 本篇不算原创,因为主要内容来自网上的博客,所以给出我参考文章的链接. 本文cron表达式详解的大部分内容参考了[cron表达式详解]和Quartz使用总结.Cron表 ...
- Quartz学习之Cron表达式详解
Quartz学习之Cron表达式详解 一.cron表达式结构 **二.各字段的含义** 解释: 注意要点: 三.示例 一.cron表达式结构 cron表达式从左到右(用空格隔开):**秒 分 小时 月 ...
- SpringBoot的AOP中PointCut表达式详解以及使用
首先,在pom.xml中添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifa ...
最新文章
- 当Swin Transformer遇上DCN,清华可变形注意力Transformer模型优于多数ViT
- 【junit】junit4单元测试eclipse
- 校园春色关不住,怎奈何唯有花枝俏,不见赏花人?
- js的oop方式和this指针问题
- Java自动化测试框架-07 - TestNG之Factory篇 - (详细教程)
- sql学习指南_SQL格式功能的全面指南
- UVALive 3211 Now or Later (2-SAT)
- jenkins(六):Jenkins节点管理
- 快速将 gif 图转成 jpg 图片
- 中文手写数据集训练识别
- 学员管理系统(完整版附带源码)
- mysql mtq_第十六节:Mysql中的关键字
- Linux关闭防火墙
- 解决GD32F105休眠后无法唤醒的问题
- 交易猫跳转APP+后台管理
- 游戏服务器需要什么配置?
- (三)拜占庭将军问题
- oracle分区注意点,ORACLE分区表梳理系列(二)- 分区表日常维护及注意事项
- 搞定Markdown中的图片,一劳永逸的方法!
- 如何刻录VCD防盗光盘