在 Java 8 中,可以通過使用函數式接口和 Lambda 表達式來實現類似 JavaScript 中將函數作為參數傳遞的功能。
以下是一個簡單的示例,演示如何在 Java 中使用函數式接口將函數作為參數傳遞:
- 定義一個函數式接口(函數式接口是只有一個抽象方法的接口)。
- 編寫一個方法,該方法接受函數式接口作為參數。
- 使用 Lambda 表達式調用該方法。
首先,定義一個函數式接口。例如:
@FunctionalInterface
interface MyFunction {void apply(String message);
}
接著,編寫一個接受函數式接口作為參數的方法:
public class Main {public static void execute(MyFunction function, String message) {function.apply(message);}public static void main(String[] args) {// 使用 Lambda 表達式傳遞行為execute(message -> System.out.println("Hello, " + message), "World");// 使用方法引用傳遞行為execute(System.out::println, "Another Message");}
}
在這個示例中:
MyFunction
是一個函數式接口,定義了一個名為apply
的方法。execute
方法接受一個MyFunction
類型的參數和一個String
類型的參數,并調用MyFunction
的apply
方法。- 在
main
方法中,使用 Lambda 表達式和方法引用將行為傳遞給execute
方法。
當你運行這個程序時,它將輸出:
Hello, World
Another Message
這樣,execute
方法就像 JavaScript 中接受函數作為參數一樣,可以接受 Lambda 表達式或方法引用,來實現傳遞行為。