Lambda表达式是 Java 8 中引入的最有影响力的功能之一。它们通过允许简洁而优雅地创建匿名函数来实现 Java 中的函数式编程。在这篇博文中,我们将探讨编写 lambda 表达式的各种形式。
创新互联建站是一家专注于网站设计、成都网站制作与策划设计,武昌网站建设哪家好?创新互联建站做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:武昌等地区。武昌做网站价格咨询:13518219792
lambda 表达式是可以具有参数和主体的匿名函数。正文可以包含零行、一行或多行代码,Lambda 表达式可以分配给类型为函数式接口(具有单个抽象方法的接口)的变量。
Java 中的Lambda 表达式 可以以各种形式编写,具体取决于它们所实现的函数式接口的抽象方法的签名。以下是编写 lambda 表达式的一些不同方法:
如果抽象方法不带参数且不返回值,则 可以使用空括号和主体编写lambda 表达式:
() -> System.out.println("Hello, World!");
如果抽象方法采用单个参数,则可以省略参数周围的括号,并且可以推断类型:
s -> System.out.println(s);
(String s) -> System.out.println(s);
如果抽象方法采用多个参数,则必须在参数两边加上括号。类型可以推断或显式声明:
(a, b) -> a + b;
(int a, int b) -> a + b;
如果 lambda 的主体由单个返回值的表达式组成,则可以直接编写:
(int a, int b) -> a + b;
如果主体由多个语句组成,则必须包含大括号并使用 return 语句:
(int a, int b) -> {
int sum = a + b;
return sum;
};
如果抽象方法不带参数但有返回值,可以这样写:
() -> 42;
这是一个简单的 Java 程序,演示了各种形式的 Lambda 表达式:
package com.example.spring.demo;
public class LambdaExample {
public static void main(String[] args) {
//无参数,无返回值:
Runnable noParametersNoReturnValue = () -> 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!
15
15
15
42
lambda表达式的形式,具体取决于参数的数量和类型、是否包含显式类型声明以及主体是由单个表达式还是多个语句组成,Java 中Lambda 表达式的灵活性,使我们能够编写简洁且富有表现力的代码。
分享标题:JavaLambda表达式各种用法,你都会了吗
网页链接:http://www.shufengxianlan.com/qtweb/news29/190929.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联