lambda表达式可以作用在函数式接口上吗
时间: 2023-07-30 14:11:45 浏览: 226
1 Lambda表达式&函数式接口.md
是的,lambda表达式可以作用在函数式接口上。在Java 8中引入lambda表达式,主要是为了支持函数式编程。函数式编程的核心概念是函数,而Java中的函数通常是通过接口来定义的。Java 8中引入了函数式接口,它是指只有一个抽象方法的接口。lambda表达式可以用来创建函数式接口的实例。
lambda表达式的语法是:(parameters) -> expression 或 (parameters) -> { statements; },其中parameters是参数列表,expression是返回值表达式,statements是语句块。lambda表达式可以根据函数式接口的方法签名来推断参数类型和返回值类型,从而创建函数式接口的实例。
例如,假设有一个函数式接口MyFunctionalInterface,它只有一个抽象方法doSomething(),则可以使用lambda表达式来创建它的实例,例如:
```
MyFunctionalInterface myFunc = () -> System.out.println("Hello World!");
```
这里,lambda表达式的参数列表为空,返回值为void,它与MyFunctionalInterface的doSomething()方法的签名相同,因此可以创建MyFunctionalInterface的实例。需要注意的是,lambda表达式只能用于函数式接口,否则会产生编译错误。
阅读全文