Lambda表达式的基础语法

Java中引入了一个新的操作符 " -> ” 该操作符称为箭头操作符或Lambda操作符

箭头操作符将Lambda表达式拆分成两部分:
*左侧:Lambda表达式的参数列表
*右侧:Lambda表达式中所需执行的功能即Lambda体
在这里插入图片描述
在这里插入图片描述

在上一章中我们提到,引入策略模式来进行根据条件查询员工的过滤,写了一个MyPredicate的接口,接口声明了抽象方法,通过不同的实现类实现接口,来进行策略模式的策略过滤。
在MyPredicate接口中有一个抽象方法test(T t),Lambda表达式的左边的参数列表就是与这个test(T t)的形参进行一一对应的,所以!Lambda表达式的右侧就是要对这个抽象方法所实现的功能
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

既然牵扯到形参列表,如果接口中的抽象方法没有形参或者多个形参,或者没有返回值,那么我们一起看看Lambda表达式是如何处理这些需求的
不多废话直接上图
在这里插入图片描述
在这里插入图片描述

需要注意的是在jdk 1.7之前,局部内部类中调用同级别的局部变量时,不能直接调用,要加上 final 关键字,在jdk 1.8以后,不需要了,但是当在局部内部类中调用局部变量使变量自加一的时候就会报错,所以在底层还是使用了 final 关键字,只不过我们看不到罢了。
局部内部类详情: http://t.csdn.cn/isQqB

最后借用老师的一句对联来简单阐述一下Lambda的基础语法

上联:左右遇一括号省
下联:左侧推断类型省
横批:能省则省
当然还需要注意,Lambda表达一定需要函数式接口的支持
在这里插入图片描述

添加@FunctionalInterface后,定义两个接口会报错
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值