Java中的lambda表达式如何理解

在写之前,我在考虑是否要写这篇文章,然而当我查阅“lambda表达式”的相关内容的时候…

在写之前,我在考虑是否要写这篇文章,然而当我查阅“lambda表达式”的相关内容的时候,我发现大量的文章都出现了冗余的现象,文章的篇幅过于夸张,严重影响了大家阅读的兴趣,因此我决定写一篇关于lambda表达式的文章,让大家能够在一定程度上对lambda表达式有一定的理解。希望能够对你在Java的学习中起到一定的帮助。

Lambda概述

Lambda表达式是JDK8开始后的一种新语法形式

作用:简化匿名内部类的代码写法

格式:

 

首先我们先定义一个抽象类,通过匿名内部类重写其方法,再对其进行简化,比较二者之间有何变化:

使用Lambda表达式之前:

使用Lambda表达式之后:

会出现报错,这是为什么呢?原因在于前面对于Lambda表达式的定义并不清晰,Lambda表达式并不能简化所以匿名内部类,其只能简化函数式接口匿名内部类的写法形式,且接口中有且仅有一个抽象方法,通常,我们会再接口上加上一个@Functionalinterface注解,标记该接口必须是满足函数式接口。

真正意义上通过Lambda表达式简化:

另外,也可以将其作为参数代入方法中去使用:

Lambda的好处:

Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码,它可以写出更简洁、更灵活的代码,作为一种更紧凑的代码风格,使Java语言表达能力得到了提升。

Lambda实战的作用

在之前的学习过程中,我们学习过了Arrays的相关知识,其中有一个sort方法(可以将数组升序或降序排列),它其实也是接口类,并且只有一个抽象方法:

 

Lambda表达式省略规则

  • 参数类型可以省略不写

  • 如果只有一个参数,参数类型可以省略,同时()也可以省略

  • 如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写,同时要省略分号

  • 如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写。此时,如果这行代码是return语句,必须省略return不写,同时也必须省略”;”不写

 

本文来自网络,不代表软粉网立场,转载请注明出处:https://www.rfff.net/p/7951.html

作者: HUI

发表评论

您的电子邮箱地址不会被公开。

返回顶部