Lambda表达式是 JAVA 8 中引入的最有影响力的功能之一 。它们通过允许简洁而优雅地创建匿名函数来实现 Java 中的函数式编程 。在这篇博文中,我们将探讨编写 lambda 表达式的各种形式 。

文章插图
概述lambda 表达式是可以具有参数和主体的匿名函数 。正文可以包含零行、一行或多行代码,Lambda 表达式可以分配给类型为函数式接口(具有单个抽象方法的接口)的变量 。
Lambda 表达式的各种编写形式Java 中的Lambda 表达式 可以以各种形式编写 , 具体取决于它们所实现的函数式接口的抽象方法的签名 。以下是编写 lambda 表达式的一些不同方法:
1.无参数 , 无返回值如果抽象方法不带参数且不返回值,则 可以使用空括号和主体编写lambda 表达式:
() -> System.out.println("Hello, World!");2. 单参数,无类型声明如果抽象方法采用单个参数,则可以省略参数周围的括号,并且可以推断类型:s -> System.out.println(s);3.单参数,带类型声明(String s) -> System.out.println(s);4. 多个参数如果抽象方法采用多个参数,则必须在参数两边加上括号 。类型可以推断或显式声明:(a, b) -> a + b;(int a, int b) -> a + b;5.有参数并且有返回值声明如果 lambda 的主体由单个返回值的表达式组成 , 则可以直接编写:(int a, int b) -> a + b;如果主体由多个语句组成,则必须包含大括号并使用 return 语句:(int a, int b) -> {int sum = a + b;return sum;};6.无参数,返回值:如果抽象方法不带参数但有返回值,可以这样写:() -> 42;示例:各种形式的 Lambda 表达式这是一个简单的 Java 程序 , 演示了各种形式的 Lambda 表达式:package com.example.spring.demo;public class LambdaExample {public static void mAIn(String[] args) {//无参数,无返回值:Runnable noParametersNoReturnValue = https://www.isolves.com/it/cxkf/yy/JAVA/2023-12-25/() -> System.out.println("Hello, World!");noParametersNoReturnValue.run(); // 输出: Hello, World!//单参数 , 无类型声明:java.util.function.Consumer singleParameterNoType = s -> System.out.println(s);singleParameterNoType.accept("Single Parameter, No Type!"); // 输出: Single Parameter, No Type!//单参数,带类型声明:java.util.function.Consumer singleParameterWithType = (String s) -> System.out.println(s);singleParameterWithType.accept("Single Parameter with Type!"); // 输出: Single Parameter with Type!//多个参数,无类型声明java.util.function.BiFunction multipleParametersTypeInferred = (a, b) -> a + b;System.out.println(multipleParametersTypeInferred.Apply(5, 10)); // 输出: 15//多个参数,有类型声明java.util.function.BiFunction multipleParametersWithType = (Integer a, Integer b) -> a + b;System.out.println(multipleParametersWithType.apply(5, 10)); // 输出: 15// 多个参数 , 并且多行实现java.util.function.BiFunction multipleStatements = (a, b) -> {int sum = a + b;return sum;};System.out.println(multipleStatements.apply(5, 10)); // 输出: 15// 无参数,但是有返回值java.util.function.Supplier noParametersReturnValue = () -> 42;System.out.println(noParametersReturnValue.get()); // 输出: 42}} 输出:Hello, World!Single Parameter, No Type!Single Parameter with Type!15151542结论lambda表达式的形式,具体取决于参数的数量和类型、是否包含显式类型声明以及主体是由单个表达式还是多个语句组成 , Java 中Lambda 表达式的灵活性,使我们能够编写简洁且富有表现力的代码 。【Java Lambda 表达式各种用法,你都会了吗】
推荐阅读
- Java垃圾回收器对循环引用对象的处理机制
- Java中的循环结构与实现方式
- 别再乱用了,Java 21 将弃用、删除这些功能!
- 优雅的关闭Java线程池,这样做才是yyds
- Java操作MongoDB如何批量写入数据
- 解除Java反复编译的困扰方法,优化开发效率
- JavaScript的作用域、闭包、高阶函数、柯里化、函数缓存和纯函数
- 如何用Java实现音频合成和声音识别?
- JVM 理解Java虚拟机:优化代码执行效率的内部机制
- 如何实现链式调用?
