浅析Java 8中Lambda 表达式

作者: 程序花生 | 来源:发表于2021-08-03 16:48 被阅读0次

前言

Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。λ表达式由三部分组成:参数列表,箭头(->),以及一个表达式或语句块。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。

什么是Lambda 表达式

Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。

Lambda 表达式语法

Lambda 等效的方法引用

(Apple a) -> a.getWeight() Apple::getWeight
() -> Thread.currentThread().dumpStack() Thread.currentThread()::dumpStack
(str, i) -> str.substring(i) String::substring
(String s) -> System.out.println(s) System.out::println

Lambda 表达式特点

可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。

使用 Lambda 表达式可以使代码变的更加简洁紧凑。

可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。

可选的大括号:如果主体包含了一个语句,就不需要使用大括号。

可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。

Lambda 表达式注意事项

Lambda 表达式主要用来定义行内执行的方法类型接口,例如,一个简单方法接口。在上面例子中,我们使用各种类型的Lambda表达式来定义MathOperation接口的方法。然后我们定义了sayMessage的执行。

Lambda 表达式免去了使用匿名方法的麻烦,并且给予Java简单但是强大的函数化的编程能力。

Lambda 表达式示例:

无参数,返回值为 info

() -> info

接收一个参数(数字类型),返回其5倍的值

x -> 5 * x 

接受2个参数(数字),并返回他们的差值

(x, y) -> x – y 

接收2个int型整数,返回他们的和

(int x, int y) -> x + y 

接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)

 (String s) -> System.out.print(s)

当然,上面只是简单的Lambda 表达式的应用。还有使用多个简单Lambda 表达式组成的复合 Lambda 表达式。例如: 函数复合、谓词复合、比较器复合等各种形式的组合起来的Lambda表达式。

总结

本文简单的介绍了Java 8中的新特性--Lambda 表达式。总体来说还是比较容易的,也能很快的入门。针对项目中可以多加练习使用,能够使代码变的更加简洁紧凑。还是很值得学习的。

好了,感谢您的阅读,希望您喜欢,如对您有帮助,欢迎点赞收藏。如有不足之处,欢迎评论指正。下次见。

作者:小阿杰
链接:https://juejin.cn/post/6991809318496501768
来源:掘金

相关文章

  • Java 8 - Lambda表达式

    Java 8 - Lambda表达式 1 Java 8-概述2 Java 8 - Lambda表达式3 Java ...

  • 【Java】4.0 Java中lambda表达式(下)

    【Java】3.0 Java中lambda表达式(上)【Java】4.0 Java中lambda表达式(下) 7....

  • java 8 lambda表达式中的异常处理

    java 8 lambda表达式中的异常处理 简介 java 8中引入了lambda表达式,lambda表达式可以...

  • java8

    1.lambda表达式《java8 Lambda表达式简介》 《java8 lambda表达式,方法的引用以及构造...

  • 《Java 8实战》学习总结

    Java 8新特性概览 Lambda表达式 流 默认方法 Lambda表达式 Lambda和函数式接口Java 8...

  • Java零基础自学DAY10 2018-03-22

    Java 8 新增的lambda表达式 Lambda 转换: Lambda表达式组成: 形参列表 箭头 ( ->)...

  • Java 8、9 语言新特性

    Java语言新特性 Java8 Java 8 新特性 Lambda 表达式 Lambda表达式(也叫做闭包)是Ja...

  • Java的Lambda表达式

    Java的Lambda表达式 1. 什么是Lambda表达式 简单的说,Lambda表达式就是匿名方法。Lambd...

  • Lambda表达式

    Lambda表达式与函数式接口紧密相关,函数式接口介绍 Lambda表达式的基本语法 Java Lambda表达式...

  • 7 Lambda表达式

    Lambda表达式是Java8的重要更新,Lambda表达式支持将代码块作为方法参数,Lambda表达式允...

网友评论

    本文标题:浅析Java 8中Lambda 表达式

    本文链接:https://www.haomeiwen.com/subject/pfyevltx.html