Java lambda表达式

2020-09-19  本文已影响0人  乐壹

Lambda表达式是一种带有参数变量的表达式,参数变量可以不传;也可以将其视为一种匿名函数。Lambda表达式没有名字,但是具有参数列表、函数主体、返回类型,甚至还可以抛出异常。

语法

Lambda表达式基本语法:
表达式-风格: (parameters) -> expression块-风格: (parameters) -> { expression; }

  • () -> {}
  • () -> "this is string!"
  • i -> i++
  • (i, j) -> i + j
  • (int i, int j) -> i + j
  • (int i, int j) -> {int s = i + j; system.out.println("i + j = " + s); }

根据上面的例子,可以看出:

使用

Lambda表达式可以直接以内联的形式为函数式接口的抽象方法提供实现,并把整个表达式作为函数式接口的实例;匿名内部类也可以完成同样的事情,只不过比较笨拙。
一言以蔽之,哪里需要函数式接口,哪里就可以使用Lambda表达式。

函数式接口

函数式接口是只定义一个抽象方法的接口,这个抽象方法就是这个接口的函数描述符,和Lambda表达式的函数描述是相同的。
函数式接口可以使用@FunctionalInterface来标注,也可以不使用,使用这个注解更方便阅读;但是如果使用这个注解去标注一个非函数式接口会报错,就像@Override一样。

参考资料:

  1. Java核心技术(第10版)
  2. Java实战(第2版)
上一篇 下一篇

猜你喜欢

热点阅读