Java8 新特性 Lamdba表达式

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表达式的使用。



关注公众号,随时获取最新资讯

细节决定成败!
个人愚见,如有不对,恳请斧正!

posted @ 2019-12-05 10:11  一点浩然气~  阅读(514)  评论(0编辑  收藏  举报