Lambda表達式是 Java 8 中引入的最有影響力的功能之一。它們通過允許簡潔而優雅地創建匿名函數來實現 Java 中的函數式編程。在這篇博文中,我們將探討編寫 lambda 表達式的各種形式。
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<String> singleParameterNoType = s -> System.out.println(s); singleParameterNoType.accept("Single Parameter, No Type!"); // 輸出: Single Parameter, No Type! //單參數,帶類型聲明: java.util.function.Consumer<String> singleParameterWithType = (String s) -> System.out.println(s); singleParameterWithType.accept("Single Parameter with Type!"); // 輸出: Single Parameter with Type! //多個參數,無類型聲明 java.util.function.BiFunction<Integer, Integer, Integer> multipleParametersTypeInferred = (a, b) -> a + b; System.out.println(multipleParametersTypeInferred.apply(5, 10)); // 輸出: 15 //多個參數,有類型聲明 java.util.function.BiFunction<Integer, Integer, Integer> multipleParametersWithType = (Integer a, Integer b) -> a + b; System.out.println(multipleParametersWithType.apply(5, 10)); // 輸出: 15 // 多個參數,并且多行實現 java.util.function.BiFunction<Integer, Integer, Integer> multipleStatements = (a, b) -> { int sum = a + b; return sum; }; System.out.println(multipleStatements.apply(5, 10)); // 輸出: 15 // 無參數,但是有返回值 java.util.function.Supplier<Integer> noParametersReturnValue = () -> 42; System.out.println(noParametersReturnValue.get()); // 輸出: 42 }}
輸出:
Hello, World!Single Parameter, No Type!Single Parameter with Type!15151542
lambda表達式的形式,具體取決于參數的數量和類型、是否包含顯式類型聲明以及主體是由單個表達式還是多個語句組成,Java 中Lambda 表達式的靈活性,使我們能夠編寫簡潔且富有表現力的代碼。
本文鏈接:http://www.tebozhan.com/showinfo-26-53347-0.htmlJava Lambda 表達式各種用法,你都會了嗎
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 幾行代碼教你自動操作 PPT
下一篇: C++函數模板詳解,輕松實現通用函數