Java的函数式接口和 Lambda 表达式
在 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 表达式或方法引用,来实现传递行为。