Lambda表达式

Lambda表达式

概述:

​ Lambda表达式是java对数学函数表达式的一种体现形式,本质是一个值,在java中主要是体现在对特殊的匿名内部类对象的一种表示,代表匿名内部类的对象。

​ 也可以理解为Lambda表达式是匿名内部类格式的一种简化,但是本质不一样。

前提:

​ 1、有且只有一个抽象方法的接口

​ 2、必须要有上下文推断

格式:

​ 标准格式:【三个一:一个小括号 一个箭头 一个花括号】

( 参数列表 ) -> { 执行代码段 }

格式解释:

​ (参数列表):是匿名内部类中重写的抽象方法的方法参数列表【就是接口抽象方法的参数列表】

​ ->:原封不动 他是lambda表达式的标志

​ {执行代码段}:是匿名内部类中重写的抽象方法的方法体【lambda表达式对接口抽象方法的重写】

好处:

​ Lambda表达式代表的匿名内部类的对象,在编译的时候不需要编译生成对应的类的字节码文件,而匿名内部类在编译的时候需要编译生成对应的字节码文件,所以Lambda表达式提升了代码的运行效率,格式变的简单使用方便

代码示例:

接口:
public interface InterfaceA {
		void show();
}

测试类:
public class LambdaDemo {
	public static void main(String[] args) {
		
		//想要使用接口中的方法
		//直接使用
		new InterfaceA() {
			
			@Override
			public void show() {
				System.out.println("我是匿名内部类中的show方法");
			}
		}.show();
		
		//创建lambda表达式
		//必须要有上下文推断
		InterfaceA interfaceA = ()->{System.out.println("我是lambda表达式中的方法");};
		interfaceA.show();
	}

}

Lambda表达式的省略原则

概述:

​ 在符合一定条件下Lambda表达式的格式可以进行简化的

具体原则:

​ 1、小括号参数的参数类型可以直接省略

​ 2、小括号的参数有且只有一个的时候,小括号可以省略

​ 3、花括号中有且只有一个执行语句的时候,可以同时省略花括号 分号 和 return关键字

​ 【要省略三者同时省略,否则一个都不要省略】

​ 4、小括号和花括号的省略原则互不干扰,各省略各的

代码示例

public class TestInterface {
	public static void main(String[] args) {
		
		//1、小括号的参数类型可以直接省略
//		InterfaceB interfaceB = (String s)->{System.out.println("我的工作是" + s);};
		InterfaceB interfaceB = (s)->{System.out.println("我的工作是" + s);};
		interfaceB.work("开车");
		
		//2、小括号的参数有且只有一个的时候,小括号可以省略
		InterfaceB interfaceB2 = s->{System.out.println("我的工作是" + s);};
		
		//3、花括号中有且只有一个执行语句的时候,可以同时省略花括号 分号 和 return关键字
//		InterfaceC interfaceC = (a, b)->{return a + b ;};
		InterfaceC interfaceC = (a, b)->a + b;
		System.out.println(interfaceC.equals(10,20));
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值