Java8新特性-lambda表达式

前言

我们就从上一篇Stream继续开始。

什么是lambda表达式?

lambda表达式是一种简化的函数,他没有定义函数的返回值、声明、访问修饰符等。

lambda表达式主要用于什么?

1.与Stream的map与reduce进行配合,对Stream进行操作。

2.在使用匿名内部类的地方可以替换为lambda简化操作。

3.在需要传入方法的地方直接进行传入方法。

Java的lambda的编写形式

(arg1, arg2...) -> { body }
(type1 arg1, type2 arg2...) -> { body }

上面两种是java的lambda表达式的完整编写方法,在一些特殊情况的时候我们可以简化我们的书写。

  • 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
  • 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
  • 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
  • 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。

lambda表达式对外部变量的访问

lambda表达式是可以直接访问外部变量的,但是如果不是按参数传入的lambda表达式是被认为是final的,也就是引用不可变的。

几个应用lambda表达式的举例

新开一个线程新任务

处理事件响应

进行快速迭代

与Stream配合使用

Junit5中的TestFactory

传入参数1为测试的名称,传入参数2为测试代码。

总结

lambda是一个很有意思的语法糖,他可以简化我们的代码,同样也可以改变我们编写代码的思路,多用用新特性总是没错的=-=

打赏