3

之前有写过一篇文章,关于JAVA Lambda表达式的介绍,没有了解过的朋友可以先参考下:https://segmentfault.com/a/11...

这篇文章的目的是让你彻底理解JAVA Lambda表达式。(先别急着感谢,看完你会很激动的,或者有所感悟)

JAVA Lambda表达式的本质

首先,所有关于JAVA Lambda表达式的文章都有着重说明函数式接口(
可以被@FunctionalInterface注解修饰的接口)。

  • 函数式接口定义了Lambda表达式的格式。都说了他是一种表达式,那么它的运算结果就是一个对象。
  • 为什么要是函数式接口呢,其他接口不行吗(只有一个抽象方法的接口才是函数式接口)? 因为JAVA Lambda表达式返回结果只有一个,只能对应一个抽象方法。
  • 抽象类的抽象方法是不支持Lambda表达式的。

JAVA Lambda表达式实现方式

其实上一篇文章只介绍Lambda表达式一种形式,Lambda表达式是有三种形式的。

  • (参数列表) -> {语句块},->是必须有的
  • 对象方法引用,例如:System.out::println
  • 类方法引用。就是static修饰的方法,包括类,抽象类,接口。

总结

JAVA Lambda表达式就是一种表达式,返回结果值就是一个对象。至于函数式接口中定义的唯一一个抽象方法就是定义了表达式要实现的逻辑。执行这个返回对象表达式逻辑部分的代码在你使用的工具类代码中。

我觉得我说明白了,不知道你懂了没有。


StephenYue
127 声望2 粉丝

你以为的都是理所当然