新聞中心
Lambda表達(dá)式是 Java 8 中引入的最有影響力的功能之一。它們通過允許簡(jiǎn)潔而優(yōu)雅地創(chuàng)建匿名函數(shù)來實(shí)現(xiàn) Java 中的函數(shù)式編程。在這篇博文中,我們將探討編寫 lambda 表達(dá)式的各種形式。

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作與策劃設(shè)計(jì),武昌網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:武昌等地區(qū)。武昌做網(wǎng)站價(jià)格咨詢:13518219792
概述
lambda 表達(dá)式是可以具有參數(shù)和主體的匿名函數(shù)。正文可以包含零行、一行或多行代碼,Lambda 表達(dá)式可以分配給類型為函數(shù)式接口(具有單個(gè)抽象方法的接口)的變量。
Lambda 表達(dá)式的各種編寫形式
Java 中的Lambda 表達(dá)式 可以以各種形式編寫,具體取決于它們所實(shí)現(xiàn)的函數(shù)式接口的抽象方法的簽名。以下是編寫 lambda 表達(dá)式的一些不同方法:
1.無參數(shù),無返回值
如果抽象方法不帶參數(shù)且不返回值,則 可以使用空括號(hào)和主體編寫lambda 表達(dá)式:
() -> System.out.println("Hello, World!");
2. 單參數(shù),無類型聲明
如果抽象方法采用單個(gè)參數(shù),則可以省略參數(shù)周圍的括號(hào),并且可以推斷類型:
s -> System.out.println(s);
3.單參數(shù),帶類型聲明
(String s) -> System.out.println(s);
4. 多個(gè)參數(shù)
如果抽象方法采用多個(gè)參數(shù),則必須在參數(shù)兩邊加上括號(hào)。類型可以推斷或顯式聲明:
(a, b) -> a + b;
(int a, int b) -> a + b;
5.有參數(shù)并且有返回值聲明
如果 lambda 的主體由單個(gè)返回值的表達(dá)式組成,則可以直接編寫:
(int a, int b) -> a + b;
如果主體由多個(gè)語句組成,則必須包含大括號(hào)并使用 return 語句:
(int a, int b) -> {
int sum = a + b;
return sum;
};
6.無參數(shù),返回值:
如果抽象方法不帶參數(shù)但有返回值,可以這樣寫:
() -> 42;
示例:各種形式的 Lambda 表達(dá)式
這是一個(gè)簡(jiǎn)單的 Java 程序,演示了各種形式的 Lambda 表達(dá)式:
package com.example.spring.demo;
public class LambdaExample {
public static void main(String[] args) {
//無參數(shù),無返回值:
Runnable noParametersNoReturnValue = () -> System.out.println("Hello, World!");
noParametersNoReturnValue.run(); // 輸出: Hello, World!
//單參數(shù),無類型聲明:
java.util.function.Consumer singleParameterNoType = s -> System.out.println(s);
singleParameterNoType.accept("Single Parameter, No Type!"); // 輸出: Single Parameter, No Type!
//單參數(shù),帶類型聲明:
java.util.function.Consumer singleParameterWithType = (String s) -> System.out.println(s);
singleParameterWithType.accept("Single Parameter with Type!"); // 輸出: Single Parameter with Type!
//多個(gè)參數(shù),無類型聲明
java.util.function.BiFunction multipleParametersTypeInferred = (a, b) -> a + b;
System.out.println(multipleParametersTypeInferred.apply(5, 10)); // 輸出: 15
//多個(gè)參數(shù),有類型聲明
java.util.function.BiFunction multipleParametersWithType = (Integer a, Integer b) -> a + b;
System.out.println(multipleParametersWithType.apply(5, 10)); // 輸出: 15
// 多個(gè)參數(shù),并且多行實(shí)現(xiàn)
java.util.function.BiFunction multipleStatements = (a, b) -> {
int sum = a + b;
return sum;
};
System.out.println(multipleStatements.apply(5, 10)); // 輸出: 15
// 無參數(shù),但是有返回值
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
結(jié)論
lambda表達(dá)式的形式,具體取決于參數(shù)的數(shù)量和類型、是否包含顯式類型聲明以及主體是由單個(gè)表達(dá)式還是多個(gè)語句組成,Java 中Lambda 表達(dá)式的靈活性,使我們能夠編寫簡(jiǎn)潔且富有表現(xiàn)力的代碼。
文章標(biāo)題:JavaLambda表達(dá)式各種用法,你都會(huì)了嗎
本文網(wǎng)址:http://www.dlmjj.cn/article/djpopdg.html


咨詢
建站咨詢
