jdk1.8新特性之Lambda

Lambda表达式

Lambda表达式,也可称为闭包,允许把函数作为一个方法的参数(函数作为参数传递进方法中),使代码变得更加简洁紧凑。
语法格式如下:
(parameters)- > expression
或者
(parameters) - > {statements;}
Lambda表达式的重要特征:

  1. 可选的类型声明:不需要声明参数类型
  2. 可选的小括号:一个参数不需要小括号,多个参数需要小括号
  3. 可选的大括号:如果主体包含了一个语句,就不需要大括号
    Lambda表达式实例
package new_jdk;

public class Test02 {
     public static void main(String[] args) {
		Test02 t = new Test02();
		
		//类型声明
		MathOperation add = (int a,int b)->a+b;
		
		//不用类型声明
		MathOperation noType=(a,b)->a-b;
		
		//大括号中的返回语句
		MathOperation multiplication = (int a,int b)->{return a * b;};
		
		//没有大括号及返回语句
		MathOperation division =(int a,int b)->a / b;
		
		System.out.println("10+5="+t.operate(10, 5, add));
		System.out.println("10-5="+t.operate(10, 5, noType));
		System.out.println("10X5="+t.operate(10, 5, multiplication));
		System.out.println("10/5="+t.operate(10, 5, division));
		
		//不用括号
		GreetingService greetService1 = (message) ->
		System.out.println("hello--"+message);
		
		//用括号
		GreetingService greetService2 = (info)->
		System.out.println("hello--"+info);
		
		//调用方法
		greetService1.sayMessage("Taobao");
		greetService2.sayMessage("Google");
		
	}
     //接口 定义一个方法 返回值int
     interface MathOperation{
    	 int operation(int a,int b);
     }
     //接口 定义一个方法 无返回值
     interface GreetingService{
    	 void sayMessage(String message);
     }
     
     private int operate(int a,int b,MathOperation mathOperation) {
    	 return mathOperation.operation(a, b);
     }
     
}

执行以上代码,输出结果为:

10+5=15
10-5=5
10X5=50
10/5=2
hello--Taobao
hello--Google

Lambda表达式需要注意:
1.主要用来定义行内执行的方法类型接口,例如,一个简单方法接口。在上面例子中,我们使用各种类型的Lambda表达式来定义MathOperation接口的方法。然后我们定义了sayMessage的执行。
2.Lambda表达式免去了使用匿名方法的麻烦,并且给与Java简单但是强大的函数化的编程能力。
变量作用域

  • Lambda表达式只能引用标记了final的外部局部变量,这就是说
  • 我们可以直接在Lambda表达式中方法中访问外层的局部变量
  • Lambda表达式的局部变量隐形的具有final的语义
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值