Java Lambda表达式
Lambda表达式简介
Lambda表达式是在Java 8中引入的。Lambda表达式是一小段代码块,它接受参数并返回一个值。Lambda表达式类似于方法,但它们不需要名称,并且可以直接在方法体中实现。
Lambda表达式的语法
最简单的Lambda表达式包含一个参数和一个表达式:
参数 -> 表达式
要使用多个参数,请将它们放在括号中:
(参数1, 参数2) -> 表达式
表达式是有限制的。它们必须立即返回一个值,并且不能包含变量、赋值或if或for等语句。为了执行更复杂的操作,可以使用带有花括号的代码块。如果Lambda表达式需要返回一个值,那么代码块应该有一个return语句。
(参数1, 参数2) -> { 代码块 }
Lambda表达式的使用
Lambda表达式通常作为参数传递给函数。在以下示例中,Lambda表达式作为参数传递给ArrayList的forEach()方法,以打印列表中的每个项:
import java.util.ArrayList;public class Main {public static void main(String[] args) {ArrayList<Integer> numbers = new ArrayList<>();numbers.add(5);numbers.add(9);numbers.add(8);numbers.add(1);numbers.forEach((n) -> { System.out.println(n); });} }
Lambda表达式的存储
如果变量的类型是仅具有一个方法的接口,那么Lambda表达式可以存储在变量中。Lambda表达式应该具有与该方法相同数量的参数和相同的返回类型。Java内置了许多这类接口,如Consumer接口(在java.util包中),它被列表使用。
import java.util.ArrayList; import java.util.function.Consumer;public class Main {public static void main(String[] args) {ArrayList<Integer> numbers = new ArrayList<>();numbers.add(5);numbers.add(9);numbers.add(8);numbers.add(1);Consumer<Integer> method = (n) -> { System.out.println(n); };numbers.forEach(method);} }
Lambda表达式作为方法参数
要在方法中使用Lambda表达式,该方法应该有一个以单一方法接口作为其类型的参数。调用接口的方法将运行Lambda表达式。
interface StringFunction {String run(String str); }public class Main {public static void main(String[] args) {StringFunction exclaim = (s) -> s + "!";StringFunction ask = (s) -> s + "?";printFormatted("Hello", exclaim);printFormatted("Hello", ask);}public static void printFormatted(String str, StringFunction format) {String result = format.run(str);System.out.println(result);} }
Lambda表达式的优势
- 简化代码
- 提高可读性
- 增强代码的表达力
Lambda
表达式是 Java 8
中引入的一项强大功能,可以简化代码并提高可读性。它们是函数式编程的重要组成部分,可以用于各种任务,例如数据处理、事件处理和流处理。
技术前沿拓展
前端开发,你的认知不能仅局限于技术内,需要发散思维了解技术圈的前沿知识。细心的人会发现,开发内部工具的过程中,大量的页面、场景、组件等在不断重复,这种重复造轮子的工作,浪费工程师的大量时间。
介绍一款程序员都应该知道的软件JNPF快速开发平台,很多人都尝试用过它,它是功能的集大成者,任何信息化系统都可以基于它开发出来。
这是一个基于 Java Boot/.Net Core 构建的简单、跨平台快速开发框架。前后端封装了上千个常用类,方便扩展;集成了代码生成器,支持前后端业务代码生成,实现快速开发,提升工作效率;框架集成了表单、报表、图表、大屏等各种常用的 Demo 方便直接使用;后端框架支持 Vue2、Vue3。如果你有闲暇时间,可以做个知识拓展。
看完本文如果觉得有用,记得点个赞支持,收藏起来说不定哪天就用上啦~