Java8 新特性 Lamdba表达式

吃可爱长大的小学妹 提交于 2019-12-06 13:50:37

Lamdba 表达式为什么出现

  Java8是自java延生以来最大的改变,他允许java中的方法和函数成为一等公民(可以在方法间传递),所以就应运而出现了Lamdba表达式,他可以将表达式传递给另一个方法,然后再进行操作。  我们其实可以把Lamdba表达式看作是匿名类的语法糖(简单写法),但是匿名类和Lamdba表达式的现实方式一点都不一样。

Lamdba 表达式的书写方式

  • 没有参数

    Runnable runnable = () -> System.out.println("没有参数,并且没有返回值");

  • 没参数,但是有返回值

    Supplier stringSupplier = () -> "没有参数,但是有返回值!";

  • 有参数,没有返回值

    Consumer consumer = (x) -> System.out.println("有参数,但没有返回值!" + x);

  • 有参数,有返回值

    Function<Integer, String> function = (x) -> x + "数字转换为字符串,返回回去";

上面的四种都是 -> 后面都只有一行,如果是多行的话,得把后的内容用{}括起来
如果是多行的情况下,有返回值,必须用,return 来返回值。
如果方法体只有一行的情况下,可以省略大括号,并且有返回值的,自动返回

Lamdba表达式的使用

  Lamdba表达式的使用主要结合函数式接口使用的,当然如果普通的只要有一个方法的接口也可以用Lamdba也可以用Lamdba来书写。以前的只有一个接口方法也可以用。
我在 java8 新特性 函数式接口用过lamdba表达式(有兴趣的可以去看一看)。
  Lamdba表达式是结合着函数式接口使用的。
  函数式接口是结合着Steam()流来使用的。
所以在后面写Steam流的时候再着重的说Lamdba表达式的使用。



细节决定成败!

个人愚见,如有不对,恳请扶正!
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!