java8新特性----Lambda表达式入门及其简写

Lambda使用前提

在java8的新特性中,接口中的方法可以有方法主体,但必须要使用static修饰或default修饰。由此衍生出了一个新的规则:函数式接口
函数式接口: 当接口中有且只有一个抽象方法,但可以有其他的方法
注解:@FunctionInterface 表示该接口为函数式接口,只能由一个抽象方法

Lambda表达式

1.作用

1.简化代码,使代码异常简洁:可以非常优雅的把“一块代码”赋给了一个变量
2.相当于匿名内部类的简写,但不会生成字节码文件

2语法结构

接口名 变量名 = (参数类型 参数名) -> {功能语句};

3语法简写:

简写核心-------要有一个内容去占位
1.可以省略参数类型,因为就只有一个抽象方法,会自动匹配抽象方法中的参数类型
2.当方法体中只有一句代码语句时,可以省略{}。如果有返回值,省略的话要同时省略{}和return。
3.当只有一个参数时,可以**省略()**号
4.如果在lambda表达式中引用了局部变量,默认使用final修饰。因为接口中的常量默认都使用public static final修饰的,所有在函数式接口中使用了过后,默认也会有final修饰

//定义一个函数式接口
@FunctionalInterface
interface LambdaInterfanceTest {
	void study(String name);
}
public static void main(String[] args) {
		// lambda常规写法 函数式接口名 变量 = (参数类型 参数)->{功能语句};
		LambdaInterfanceTest m = (String name) -> {
			System.out.println(name + "hello");
		};
		// Lambda省略参数类型  函数式接口名 变量 = (参数)->{功能语句};
		LambdaInterfanceTest m1 = (name) -> {
			System.out.println(name + "hello");
		};
		// Lambda当只有一个参数时可以省略()号  函数式接口名 变量 = 参数->{功能语句};
		LambdaInterfanceTest m2 = name -> {
			System.out.println(name + "hello");
		};
		// Lambda当只有一个输出语句时可以省略{},当有返回值时,可以省略的话必须同时省略 {}和return  接口名 变量 = 参数->功能语句;
		LambdaInterfanceTest m3 = name -> System.out.println(name + "hello");
		String name1 = "帅";
		// Lambda中如果使用了局部变量,那么局部变量会默认使用final修饰
		LambdaInterfanceTest m4 = name -> System.out.println(name1 + "hello");
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值