Lamda表达式

标签: java

◆入希腊字母表中排序第十一位的字母,英语名称为Lambda
◆避免匿名内部类定义过多
◆其实质属于函数式编程的概念
(params) -> expression [表达式]
(params) -> statement [语句]
(params) -> { statements }
a-> System. out. println(“i like lambda–>”+a) ;
在这里插入图片描述简化实例化实现一个接口(只包含一个抽象方法)的对象的过程:

定义一个函数式接口
1.实现类 ---->2.静态内部类 —>3.局部内部类 ---->4.匿名内部类 没有类的名称 必须借助接口或者父类 ---->5.用lamda简化


public class TestLamda {

	//3.静态内部类
	static class Like2 implements ILike{

		@Override
		public void lamda() {
			System.out.println("lamda2");
		}
		
	}
	public static void main(String[] args) {
		
		ILike like = new Like();
		like.lamda();
		like = new Like2();
		like.lamda();
		
		
		//4.局部内部类
		class Like3 implements ILike {

			@Override
			public void lamda() {
				System.out.println("lamda3");
			}
		}
		like = new Like3();
		like.lamda();
		
		//5.匿名内部类 没有类的名称 必须借助接口或者父类
		like = new Like() {
			@Override
			public void lamda() {
				System.out.println("lamda4");
			}
			
		};
		like.lamda();
		
		//6.用lamda简化
		like = ()-> {
			System.out.println("lamda5");
		};
		like.lamda();
	}
}
//1.定义一个函数式接口
interface ILike{
	void lamda();
}
//2.实现类
class Like implements ILike{

	@Override
	public void lamda() {
		// TODO Auto-generated method stub
		System.out.println(" i like lamda");
	}
	
} 

单独的lamda用法


public class TestLamda {
	public static void main(String[] args) {
		
		//ILike like = (int a )-> {
			//System.out.println("lamda5");
		//};
	//	like.lamda(521);
		//使用前提:接口是函数式接口 
		//1.可以不用返回值 多个参数也可以都去掉(必须加上括号)
		//2. 简化括号
		//3.去掉花括号(只有一行的代码)
		ILike like = a->System.out.println("lamda5" + a);
		like.lamda(521);

	}
}
//1.定义一个函数式接口
interface ILike{
	void lamda(int a);
}

版权声明:本文为Azadoo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Azadoo/article/details/106549510

智能推荐

Docker-Compose部署nginx 和lnmp

Docker-Compose tomcat lnmp tomcat 使用Docker-Compose部署Nginx代理Tomcat集群,实现负载均衡 在这个目录下创建多个目录 切换到nginx目录修改nginx的主配置文件: [root@host1 compose]# cd nginx/ [root@host1 nginx]# vim default.conf 在末尾添加: 修改: 切换到tmca...

19-20年月度行业分析

Table of Contents 1  对各一级行业分析 2  对女装行业进行分析 对各一级行业分析 platform cid industry category themonth 销售额 访客 客群指数 行业简称 月 年 年月 0 天猫 50010368 ZIPPO/瑞士军刀/眼镜 太阳眼镜 2020-01-01 62484514.13 6663217 ...

Python数据分析入门

博客原文:https://ouduidui.cn/blog/detail?blogId=5fcddf5c61ae700fd80190db 基础知识 数据的分类 数值型数据 表示大小或多少的数据 例子:年龄、年购买量 数值型数据分析方法 最小值和最大值:查看这两个值的目的是为了能够确定一组数据的上界和下界。 **平均值:**平均值可以反映一组数据的综合水平。 **中位数:**中位数和平均数一样都是用...

1.Java基础入门 -(10)流程控制-循环嵌套结构

什么是循环嵌套? 循环嵌套就是在循环体内,包含一个完成的循环结构。(我们在if嵌套里讲过) 示例1:使用双重循环输出九九乘法表。 运行结果: 示例2:请打印直角三角形。 (这里用 . 代替 空格 方便演示) 运行结果: 示例3:请打印等腰三角形。 运行结果: 示例4:请输出1-100之间的素数。 质数又称为素数,是一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数...

AlertDialogDemo自定义使用方法

效果图如下: Dialog左边的按钮忘记支付密码写错了 已修复 图就不改了 功能需求点击重试 再次打开输入支付密码页面 点击忘记支付密码跳转密码设置页面 此Demo只为演示AlertDialog的使用方法以及资源属性设置 需要其他功能请留言说明 这是一个支付密码输入失败的弹框 自定义了基本属性 XMl布局dialog_common 圆角框的属性commen_dialog_bg Styledialo...

猜你喜欢

2020网鼎杯---Java文件上传wp

前言 一篇文章读懂Java代码审计之XXE看过我这篇博客应该不难,没看过建议在看看。 题解 下载了所有的class发现需要上传xlsx poi 开头必须是execl 新建execl -1.xlsx文件,修改后缀名execl -1.xlsx.zip解压。 修改[Content-Types].xml 重新打包成excel-1.xlsx,文件名一定不能错。 在服务器上新建一个evil.etd文件。 然后...

关于串口数据接收出错问的问题(RS232、RS422、UART)

这两天调试串口驱动,串口驱动应该是很简单的啊,但是发现数据接收的时候,总是偶尔会出现错误,经过不断的排查,终于找到了问题的关键所在。 一段串口的verilog代码如下: 如果采样上面的方式对串口数据进行接收,就会发现串口数据总是偶尔出现个别的数据接收出错。通过ila抓波形,发现有如下图一的异常情况出现,这个时候uart_rx_i已经拉低了,但是却没有检测到下降沿,就会导致数据接收出错,这是由于亚稳...

入侵别人电脑后你必须要会的Linux与window系统用命令行下载网络资源的15种方式

我花了一天时间精心整理本文,有百度的经典方案,有老师的精心传授,也有自己的实践总结,如果觉得有用就转发收藏吧️别忘点赞哦这样可以帮助到更多的人 window系统常见下载方式 FTP脚本 vbs脚本 bitsadmin命令 $client命令 Linux系统常见下载方式 wget curl lynx fetch Axel aria2 youtube-dl 双方均可用 links links2 pyt...

10-python之常见的数据类型,如何获取变量的类型

文章目录 1. python 常见的数据类型 2. 如何获取一个变量的类型---type函数 1. python 常见的数据类型 2. 如何获取一个变量的类型—type函数 输出的结果...

[USACO06NOV]玉米田Corn Fields(状压DP)

P1879 [USACO06NOV]玉米田Corn Fields Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy corn for t...